Python项目不会根据系统路径作战需求文件

2024-04-25 19:38:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用pip和python2.7升级项目中的依赖项。全局python有一个较低版本的依赖关系,我使用--user选项运行pip install以避免与全局sdk发生冲突。你知道吗

我正在目录workspace/myproject中运行命令pip install --user -r requirements.txt。这个目录也是我的PYTHONUSERBASE 项目无法使用升级版本并退出。 下面是python -m site命令的结果

sys.path = [
'workspace/myproject',
'/usr/local/lib/python2.7/site-packages/pip-9.0.1- 
py2.7.egg',
'/usr/local/lib/python27.zip',
'/usr/local/lib/python2.7',
'/usr/local/lib/python2.7/plat-linux2',
'/usr/local/lib/python2.7/lib-tk',
'/usr/local/lib/python2.7/lib-old',
'/usr/local/lib/python2.7/lib-dynload',
'workspace/myproject/_pip/lib/python2.7/site- 
 packages',
'/usr/local/lib/python2.7/site-packages',
]
USER_BASE: 'workspace/myproject/_pip' (exists)
USER_SITE: 'workspace/myproject/_pip/lib/python2.7/site-packages' 
(exists)
ENABLE_USER_SITE: True

pip -V命令:pip 9.0.1 from /usr/local/lib/python2.7/site-packages/pip-9.0.1-py2.7.egg (python 2.7)

如您所见,我的用户站点位于全局站点包位置的上方。当我导航到用户站点目录时,我可以看到最新版本的所有类和模块。命令pip list--user还向我显示了所需的版本。不过,当我运行这个项目时,旧的依赖关系是从全局站点包位置获取的。我使用__file__变量来确定导入模块的完整路径,它显示了

'/usr/local/lib/python2.7/site-packages' 

但是,当我使用--ignore installed选项运行pip install时,一切都按预期运行。这个系统路径具有相同的输出,但是__file__变量现在显示用户站点目录的路径。我承认我是python和pip的新手,但是根据我对周围文档的理解搜索路径,python导入,以及用户\ u站点,这不是预期的行为。有人遇到过类似的情况吗?我对pip如何使用--user选项有错误的理解吗?对此的任何输入都会有所帮助。你知道吗

谢谢!你知道吗


Tags: pip用户命令路径目录站点libpackages

热门问题