【发布时间】:2017-10-15 02:12:12
【问题描述】:
我使用 pip 安装项目依赖项。 Pip 将其所有依赖项安装到此位置
位置:/home/tara/taraproject/myvenv/lib/python2.7/site-packages
我想要完成的事情:
我想把所有的依赖都放在项目里面,而不是让用户在运营的时候去设置。只是想给运营团队减轻安装负担。
我尝试了什么?
我在我的 ProjectFolder 中尝试了这个,我的工作项目存在于此
/home/tara/taraprject/ProjectFolder
我创建了一个名为 dependencies 的目录并尝试在其中添加所有依赖项模块。然后导入为。
from dependencies.yapsy.PluginManager import PluginManager
我还通过添加 init.py 文件将目录设为模块。
Traceback (most recent call last):
File "main.py", line 16, in <module>
from dependencies.yapsy.PluginManager import PluginManager
File "/home/tara/taraproject/myvenv/checkaccess/dependencies/yapsy/__init__.py", line 73, in <module>
from yapsy.compat import is_py2, str
ImportError: No module named yapsy.compat
看起来导入工作正常,但模块的内部代码在导入时出现错误。
为何如此尝试?
如果我能做到,运维团队可以轻松获取我的项目并轻松运行,无需下载依赖项和进行必要的设置。只是想让运维部分更容易
我该如何解决此类问题或有什么方法?
【问题讨论】:
-
通过将其放入
dependencies,您正在更改模块的绝对导入路径,因此很容易破坏它们。最好不要将dependencies制作成python 包,而是将其添加到PYTHONPATH环境变量中,同时保持您的导入语句与以前一样。
标签: python dependencies pip python-module