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中的脚本?