首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用-e选项从github安装到virtualenv中的pip无法将包添加到python路径

使用-e选项从github安装到virtualenv中的pip无法将包添加到python路径
EN

Stack Overflow用户
提问于 2013-02-24 11:24:39
回答 4查看 6.1K关注 0票数 7

我正在尝试在“可编辑”(-e)模式下从我的github安装一个包,以便在使用它的同时能够轻松地在存储库上工作。

然而,它造成了问题,因为在我安装它之后,它在python路径中不可用。

创建并激活一个新的、干净的virtualenv "publisher“后,我运行以下命令:

代码语言:javascript
复制
pip install -e git+https://github.com/roberts81/easy-thumbnails.git#egg=easy_thumbnails
Obtaining easy-thumbnails from git+https://github.com/roberts81/easy-thumbnails.git#egg=easy_thumbnails
  Cloning https://github.com/roberts81/easy-thumbnails.git to /Users/ben/Envs/publisher/src/easy-thumbnails
  Running setup.py egg_info for package easy-thumbnails

    no previously-included directories found matching 'docs/_build'
Installing collected packages: easy-thumbnails
  Running setup.py develop for easy-thumbnails

    no previously-included directories found matching 'docs/_build'
    Creating /Users/ben/Envs/publisher/lib/python2.7/site-packages/easy-thumbnails.egg-link (link to .)
    Adding easy-thumbnails 1.2 to easy-install.pth file

    Installed /Users/ben/Envs/publisher/src/easy-thumbnails
Successfully installed easy-thumbnails
Cleaning up...

然后,如果我运行python (仍然在我的virtualenv中),并尝试从该包中导入任何内容,它将失败。

代码语言:javascript
复制
Python 2.7.2 (default, Jun 20 2012, 16:23:33) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import easy_thumbnails
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named easy_thumbnails
>>> 

如果我不使用-e选项安装它,一切都会正常工作。我得到了与其他代码库相同的效果(即安装后它们不在python路径上),例如pip install -e git+http://github.com/django/django.git@stable/1.5.x#egg=django。那是怎么回事呢?

我注意到的一件事是,它似乎并没有真正更新easy-install.pth文件,尽管它说它是……这里发生了一些奇怪的事情。

但是如果我运行它( pip安装...命令)使用sudo,它可以工作!我还可以全局安装这个包(在virtualenv之外,当然是使用sudo ),这是可行的。

版本:

pip==1.2.1 virtualenv==1.8.4 virtualenvwrapper==3.6 python==2.7.2 Mac OSX 10.8.2

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-07-16 04:45:44

我遇到了类似的问题,通过删除我的virtualenv,重新创建它,激活它,然后(在做任何其他事情之前)更新环境中的pip和setuptools来解决它。首先打开一个新的终端窗口(以确保虚拟环境未被激活),然后导航到上面您的virtualenv所在的目录。然后执行以下操作:

代码语言:javascript
复制
rm -rf env
virtualenv env
. env/bin/activate
pip install -U pip setuptools

在此之后,我能够从GitHub (使用pip)安装该包,并能够将其导入python。

票数 1
EN

Stack Overflow用户

发布于 2013-02-24 11:32:58

为我使用pip 1.2.1和virtualenv 1.8.4:

代码语言:javascript
复制
$ virtualenv -p python2.7 venv
Running virtualenv with interpreter /usr/local/bin/python2.7
New python executable in venv/bin/python
Installing setuptools............done.
Installing pip...............done.

$ source venv/bin/activate

$ pip install -e git+https://github.com/roberts81/easy-thumbnails.git#egg=easy_thumbnails
Obtaining easy-thumbnails from git+https://github.com/roberts81/easy-thumbnails.git#egg=easy_thumbnails
  Cloning https://github.com/roberts81/easy-thumbnails.git to ./venv/src/easy-thumbnails
  Running setup.py egg_info for package easy-thumbnails

    no previously-included directories found matching 'docs/_build'
Installing collected packages: easy-thumbnails
  Running setup.py develop for easy-thumbnails

    no previously-included directories found matching 'docs/_build'
    Creating /Users/jterrace/test/venv/lib/python2.7/site-packages/easy-thumbnails.egg-link (link to .)
    Adding easy-thumbnails 1.2 to easy-install.pth file

    Installed /Users/jterrace/test/venv/src/easy-thumbnails
Successfully installed easy-thumbnails
Cleaning up...

$ python
Python 2.7.3 (default, Nov 12 2012, 09:50:25) 
[GCC 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66))] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import easy_thumbnails
>>> easy_thumbnails.VERSION
'1.2'
票数 2
EN

Stack Overflow用户

发布于 2014-02-23 09:58:37

现在这看起来可能很愚蠢,因为问题已经得到了回答,这解决了另一个问题--但当我遇到这个错误时,这就是我的解决方案。(我希望这能对其他人有所帮助)

确保您有一个适当的__init__.py文件。结构应该类似于以下内容:

代码语言:javascript
复制
/myprojectname
  /myprojectname
    __init__.py
    mymodule.py
  setup.py

然后在顶层myprojectname文件夹中运行"pip install -e .“,一切正常。我忘记了本例中的__init__.py,并且忘记了这可能是导致该消息的原因。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15048316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档