【问题标题】:package is installed via pip in wrong (src) directory instead of site packages包是通过 pip 安装在错误(src)目录而不是站点包中的
【发布时间】:2013-05-23 00:40:27
【问题描述】:

我正在使用 virtualenvwrapper 将 this 包安装到 virtualenv 中,并使用以下命令进行 pip:

pip install -e git+git://github.com/mr-stateradio/django-exchange.git#egg=django_exchange-master

有趣的是,该包随后被放入 src 文件夹,而不是我所期望的 site-packages 文件夹中。包放在这个文件夹中:

<path-to-my-virtual-env>/testenv/src/django-exchange-master/exchange

而不是这个:

<path-to-my-virtual-env>/testenv/lib/python2.7/site-packages

我认为我正在使用的 pip install 命令或软件包的 setup.py 有问题。

【问题讨论】:

  • 大声笑。 Stackoverflow 真的是一个了不起的地方。您问题中的详细信息帮助我解决了困扰我数小时的同一问题。

标签: virtualenv pip virtualenvwrapper


【解决方案1】:

-e 选项告诉 pip 以“editable”模式安装软件包。如果删除 -e 选项,pip 会将包安装到&lt;venv path&gt;/lib/Python_version/site-packages。不要忘记删除&lt;venv path&gt;/src里面的包,因为python会先查找&lt;venv path&gt;/src里面的包。

pip 支持从 Git、Mercurial、Subversion 和 Bazaar 安装,并使用 url 前缀检测 VCS 的类型:“git+”、“hg+”、“bzr+”、“svn+”。

例如

$ pip install -e git+https://git.repo/some_pkg.git#egg=SomePackage          # from git
$ pip install -e hg+https://hg.repo/some_pkg.git#egg=SomePackage            # from mercurial
$ pip install -e svn+svn://svn.repo/some_pkg/trunk/#egg=SomePackage         # from svn
$ pip install -e git+https://git.repo/some_pkg.git@feature#egg=SomePackage  # from 'feature' branch

VCS 项目可以安装在可编辑模式下(使用 –editable 选项),也可以不安装。

  • 对于可编辑安装,默认克隆位置在虚拟环境中为&lt;venv path&gt;/src/SomeProject,对于全局安装,默认为&lt;cwd&gt;/src/SomeProject–src 选项可用于修改此位置。
  • 对于不可编辑的安装,项目在本地临时目录中构建,然后正常安装。 `

【讨论】:

  • 我认为应该是--src in pip? pip install -r ./requirements.txt --no-cache --src ~/.virtualenvs/PROJECTNAME/src
猜你喜欢
  • 2014-01-24
  • 2014-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多