Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python从不带sys.path的不同文件夹导入模块_Python_Python 3.x_Python Import - Fatal编程技术网

Python从不带sys.path的不同文件夹导入模块

Python从不带sys.path的不同文件夹导入模块,python,python-3.x,python-import,Python,Python 3.x,Python Import,第一百万次,这个问题已经被问了很多次,但是所有的答案都是围绕着sys.path来的。有人能告诉我安排进口的最佳方法吗? 以下是我的项目结构: MyProject- - config.yaml - data - docs - logs - package_a - __init__.py - file1.py - package_b - __init__.py - file2.py - requirements.txt 我想在file2.py中导入file1 fil

第一百万次,这个问题已经被问了很多次,但是所有的答案都是围绕着
sys.path
来的。有人能告诉我安排进口的最佳方法吗? 以下是我的项目结构:

MyProject-
- config.yaml  
- data  
- docs  
- logs
- package_a
  - __init__.py
  - file1.py
- package_b 
  - __init__.py
  - file2.py 
- requirements.txt
我想在
file2.py中导入
file1

file2.py
如下所示:

from package_a.file1 import some_function
现在,每当我像这样运行
file2.py
:从
MyProject
目录运行
python包/file2.py
。我得到以下错误:
ModuleNotFoundError:没有名为“package\u a”的模块


为什么在python中导入如此违反直觉?请明确说明如何解决此问题?

您可以这样导入,但这取决于当前的工作环境directory@luigigi正如我所提到的,我当前的工作目录是
MyProject
。但是,除非我在
sys.path
中明确地将绝对路径附加到
MyProject
,否则上述方法不起作用,你确定吗?把这个
导入操作系统;将(os.getcwd())
打印在导入的上方,并检查它是否真的是您的project@luigigi是的,我的当前目录是MyProject的/absolute path。我已经检查过了。您是否在特定环境中运行代码?或者你只是在终端上运行MyProject中的脚本?