use*_*250 3 python python-import
我正在构建一个将通过pip包含在其他项目中的库.
我有以下目录('venv'是virtualenv):
project
\- bin
\- run.py
\- myproj
\- __init__.py
\- logger.py
\- venv
Run Code Online (Sandbox Code Playgroud)
我激活了virtualenv.
在bin/run.py我有:
from myproj.logger import LOG
Run Code Online (Sandbox Code Playgroud)
但我总是得到
ImportError: No module named myproj.logger
Run Code Online (Sandbox Code Playgroud)
以下来自"项目"目录:
python -c "from myproj.logger import LOG"
Run Code Online (Sandbox Code Playgroud)
从'bin'目录调用时,它没有正确地将'project'目录添加到pythonpath.如何从bin目录中的脚本导入'myproj'中的模块?
安装myproject到venvvirtualenv; 然后你可以在没有黑客的情况下激活环境时myproject从任何脚本(包括bin/run.py)导入sys.path.
要安装,创建project/setup.py了myproject包,并从运行project目录,而virtualenv中处于活动状态:
$ pip install -e .
Run Code Online (Sandbox Code Playgroud)
它将安装在myproject原位(myproject模块中的更改立即可见,无需重新安装myproject).
最简单的解决方案是将父文件夹作为可搜索路径附加到导入上方.
__PRE__