我正在尝试为需要python 3.5的repo获取虚拟环境。我正在使用Debian,据我所知,python 3.5没有aptitude包。阅读一些帖子后,建议下载3.5源代码并进行编译。
运行make和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仍在使用pip的/ usr / local / bin版本。
$ echo $PATH
返回
/home/me/project-dir/env/bin:/usr/local/bin:/usr/bin:/bin: ...
我假设因为/ usr / local路径来自我的PATH变量中的虚拟环境路径,它使用的是pip版本而不是我的虚拟环境。
在virtualenv中运行正确版本的pip的最佳方法是什么?我能想到的两个选项是将二进制文件移到/ usr / bin或修改虚拟环境中的激活脚本,以便在/ usr / local之后放置virtualenv路径。
答案 0 :(得分:2)
选项1 您可以通过执行
手动升级虚拟环境中的pippip install -U pip
选项2
升级该包内的pip的好方法
python -m ensurepip --upgrade
确实升级了系统中的pip版本(如果它低于ensurepip中的版本)。
您正面临这个问题,因为venv使用ensurepip将pip添加到新环境中:
除非给出--without-pip选项,否则将调用ensurepip bootstrap pip进入虚拟环境。
Ensurepip包不会从互联网上下载或从其他任何地方获取文件,因为所有必需的组件都已包含在包中。这样做会增加安全漏洞,因此不受支持。
Ensurepip并非旨在为您提供最新的点数,而仅仅是" a"点子。要获得最新版本,请在本文开头使用手动方式。
要检查ensurepip版本,您可以输入python console import ensurepip print(ensurepip.version())
更多有待进一步阅读的结果:
答案 1 :(得分:2)
凯什的回答让我朝着正确的方向前进。
问题是我实际上没有在我的venv中安装pip。
事实证明,当我从源代码构建python3.5时,我没有libssl-dev软件包。看起来像ensurepip的依赖之一是没有安装的python ssl包,因为我没有libssl-dev。
为了解决这个问题,我重新安装了python 3.5 for source并安装了libssl-dev软件包。重建的python现在包含了ssl包,它允许ensurepip在我的虚拟环境中安装pip。
答案 2 :(得分:1)
尝试在本地安装:
Dim HTMLForm As New StringBuilder
HTMLForm.Append("<html>")
HTMLForm.AppendLine("<body onload='document.forms[""" & "form1" & """].submit()'>")
HTMLForm.AppendLine("<form id='form1' method='POST'>" )
'Set value to collection
SetRequestField("amount", CDec(lblTtlPayAmt.Text))
'Generate HTML content using collection
For Each kvp As KeyValuePair(Of String, String) In RequestFields
If Not String.IsNullOrEmpty(kvp.Value) Then
HTMLForm.AppendLine("<input type='hidden' id='" & kvp.Key & "' name='" & kvp.Key & "' value='" & kvp.Value & "' />")
End If
Next
HTMLForm.AppendLine("<input type = 'submit' value=PayNow' onclick = '" & window.open("~/Payment/Payment.aspx") & "'/>")
HTMLForm.AppendLine("</form>")
HTMLForm.AppendLine("</body>")
HTMLForm.AppendLine("</html>")
Response.Clear()
Response.Write(HTMLForm.ToString())
我认为,这会将文件安装在pip install --user -r requirements.txt
目录的子目录中(我认为你的虚拟环境会设置)。否则我认为你可以使用:
$HOME