我有两个项目。在第一个中,我可以导入我的模块importme.py,如:
import importme
现在我可以在importme模块中使用我的函数hello()而没有任何问题。在第二个,我收到:
ImportError: No module named 'importme'
但我可以通过以下方式导入:
from . import importme
为什么我不能在两个项目中以相同的方式导入我的模块?我应该配置一些路径吗?
EDIT1 :
第一个项目的目录结构:
testproject/
├── importme.py
└── start.py
第二个项目的目录结构:
spiders/
├── spider.py
├── download_page.py
├── importme.py
└── __init__.py
文件 init .py为空。
答案 0 :(得分:0)
我最喜欢的处理PYTHONPATH
的方法是在虚拟环境中以编辑模式安装包。
创建虚拟环境
# create
$ python -m venv ~/virtualevns/myenv
# then activate it
$ source ~/virtualenvs/myenv/bin/activate
# you can check whether it got activated
$ which python
home/user/virtualenvs/myenv/bin/python
为您的项目编写setup.py
。有关此内容,请参阅官方distributing packages教程。
以可编辑格式安装包。
如果您使用-e
标记安装包,则会以可编辑的格式安装它,这意味着您在代码中所做的所有更改都将出现在您的环境包中:
$ cd mypkg
$ pip install -e .
最后,您需要将虚拟环境设置为在您正在使用的编辑器中使用的任何IDE。
这是一个很棒的工作流程,因为它干净可靠 - 您正在使用您在生产/成品包装环境中使用的产品。