2017-02-03 83 views
0

我正试图在计算机上安装一些使用pip的软件包,但没有root权限。我遇到了依赖关系的一些问题。基本上,我安装一个软件包1:pip如何找到依赖关系?

cd path/to/package1 
pip install . --install-option="--prefix=path/to/my/install/dir" 

但是当我尝试安装包2:

cd path/to/package2 
pip install . --install-option="--prefix=path/to/my/install/dir" 

它无法找到包1.如何设置它寻找依赖的目录?

回答

2

尝试使用virtualenv - 它使包管理正确。

这样一来,你首先创建的virtualenv:

$ virtualenv aaa 
Using base prefix '/Users/el/.pyenv/versions/3.5.1' 
New python executable in /Users/el/tmp/aaa/bin/python3.5 
Also creating executable in /Users/el/tmp/aaa/bin/python 
Installing setuptools, pip, wheel...done. 

然后

$ source aaa/bin/activate 

此设置环境变量和所有新安装pip将这个文件夹中做。

当你完成它的工作,只是做:

$ deactivate 

现在你的virtualenv退出通常的“系统”之一。

结果:

  • 你的环境是从操作系统的一个
  • 你不能打破系统库
  • 您可能已经分离为不同的项目不同virtualenvs。并且它们可能具有不兼容的模块
  • 您可以使用pip freeze > requirements.txt轻松修复模块版本。现在,这个文件中包含的所有模块与格式很简单固定版本:

    appdirs==1.4.0 
    packaging==16.8 
    pyparsing==2.1.10 
    six==1.10.0 
    
  • 您可以从头创建这种环境下,只用:

    $ virtualenv folder 
    $ source ./folder/bin/activate 
    $ pip install -r requirements.txt 
    
0

这并没有真正回答这个问题但不解决根本问题---安装使用

pip install . --user 

在本地直接安装一切ory that pip know to look in。