繁体   English   中英

Python 3.5安装pyvenv

[英]Python 3.5 install pyvenv

我正在尝试为需要python 3.5的存储库提供虚拟环境。 我正在使用Debian,据我所知,python 3.5没有aptitude软件包。 阅读一些文章后,建议下载3.5源代码并进行编译。

运行make and install之后,将python3.5安装到/ usr / local / bin。 我将其添加到$ PATH变量中。

这是我遇到问题的地方。 我跑完之后:

$ cd project-dir
$ pyvenv env
$ source env/bin/activate
$ pip install -r requirements.txt

我在需要sudo安装正确的软件包时遇到问题。 我跑了:

$ which pip

原来pip仍在使用/ usr / local / bin版本的pip。

$ echo $PATH

回来

/home/me/project-dir/env/bin:/usr/local/bin:/usr/bin:/bin: ...

我假设是因为/ usr / local路径位于我的PATH变量中虚拟环境的路径之后,所以它使用的是该版本的pip而不是我的虚拟环境。

在virtualenv中运行正确版本的pip的最佳方法是什么? 我可以想到的两个选项是将二进制文件移至/ usr / bin或修改虚拟环境中的激活脚本,以将virtualenv路径放在/ usr / local之后。

选项1您可以通过执行以下操作在虚拟环境中手动升级pip

pip install -U pip

选项2升级该软件包python -m ensurepip --upgrade pip的好方法python -m ensurepip --upgrade确实确实升级了系统中的pip版本(如果它低于surepip中的版本)。

您正面临此问题,因为venv使用surepip将pip添加到新环境中:

除非给出--without-pip选项,否则将调用surepip来将pip引导到虚拟环境中。

由于所有必需的组件已经包含在软件包中,因此surepip软件包不会从Internet下载或从其他任何地方获取文件。 这样做会增加安全漏洞,因此不受支持。

确保不能为您提供最新的点子,而只是“一个”点子。 要获得最新消息,请在本文开头使用手动方式。

要检查surepip版本,您可以输入python控制台,然后import ensurepip print(ensurepip.version())

更多发现以供进一步阅读:

  1. 使用文件手动升级surepip- https://github.com/python/cpython/commit/f649e9c44631c07e707842c42747b651b986dcc4
  2. 为Python安装pip,virtualenv和分发的正确方法是什么?
  3. 全面的初学者的virtualenv教程?

凯什的回答使我朝着正确的方向前进。

问题是我的venv中实际上没有安装pip。

事实证明,当我从源代码构建python3.5时,我没有libssl-dev软件包。 看起来surepip的依赖项之一是未安装python ssl软件包,因为我没有libssl-dev。

为了解决这个问题,我使用安装的libssl-dev软件包为源代码重建了python 3.5。 现在,重建的python包括ssl软件包,该软件包允许surepip在我的虚拟环境中安装pip。

尝试在本地安装:

pip install --user -r requirements.txt

我相信,它将把文件安装在$HOME目录的子目录中(我想会设置您的虚拟环境)。 否则,我认为您可以使用:

/path/to/virtualenv/pip install -r requirements.txt

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM