Fal*_*gel 3 python django importerror pythonpath
在我们的python/django项目中,我们有一个名为utils的目录,它保留了基本功能......
有时,我们需要通过从控制台运行来测试一些模块
python myproject/some_module.py
Run Code Online (Sandbox Code Playgroud)
这一切都很好,直到python尝试从我们的 utils目录导入一些内容...
from utils.custom_modules import some_function
ImportError: No module named custom_modules
Run Code Online (Sandbox Code Playgroud)
我检查了我的python路径,我们的项目在列表中,项目文件下的每个文件夹都有__init__.py文件,当我在项目目录中运行ipython时...一切正常,否则,python从其自己的utils目录导入...
我的同事使用sama方法没有任何问题,但它会引发ImportError我的环境......我们所有人都缺少的问题是什么?
更新:我的项目目录,每个子目录都有__init__.py文件,我可以从我的项目中导入其他模块没有任何问题...当我在一个不同的文件夹比我的procekt和我运行ipython,这样的导入没有问题...
from someothermodule.submodule imprort blahblahblah
Run Code Online (Sandbox Code Playgroud)
但是,当涉及到导入utils时,它失败了......
更新2:导致问题的原因是django文件夹下的utils目录,它也在python路径中...
有关语义,请参阅PEP关于绝对和相对导入的信息.你可能想要
from .utils.custom_modules import some_function
Run Code Online (Sandbox Code Playgroud)
如果你在包裹顶层的文件中.
编辑:这只能从包内完成.这是有充分理由的 - 如果你要导入属于你项目的东西,那么你已经把它当作一个Python包来处理它,你应该把它当作一个.您可以通过向__init__.py项目目录添加文件来完成此操作.
编辑2:你完全改变了这个问题.有可能解决这个问题,但正确的做法是不要像内置包那样引用你的包装.您可能需要重命名utils,或使其成为另一个包的子包,这样你就可以不冲突的名称(如引用它from mydjangoapp.utils.custom_modules import some_function).
| 归档时间: |
|
| 查看次数: |
3126 次 |
| 最近记录: |