【发布时间】:2017-03-14 01:46:01
【问题描述】:
我正在尝试创建一个 virtualenv 并仔细跟踪所有依赖项。我以这种方式创建了环境:
virtualenv --no-site-packages purenv
cd purenv
source bin/activate
然后运行这个python脚本:
url = "http://localhost:6543/foo/",
hdrz = {
"Accept" : "text/html",
"account-code":"foo1234",
'Content-Type': 'application/json'
}
request = urllib2.Request(url, headers=hdrz)
我收到此错误:
File "foo.py", line 10, in <module>
request = urllib2.Request(url, headers=hdrz)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 229, in __init__
self.__original = unwrap(url)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 1075, in unwrap
url = url.strip()
AttributeError: 'tuple' object has no attribute 'strip'
which python
/Users/foo.bar/workspace/purenv/bin/python
所以,我正在使用安装到 virtualenv 的 python,但错误来自 virtualenv 外部(/System/Library/Frameworks/... 而不是purenv/lib/python2.7/site-packages... 或类似的)。
如何创建一个不调用外部文件的 virtualenv?
【问题讨论】:
-
这是标准库的一部分,不是外部包。这是预期的行为。
-
但是如果你使用的python安装在virtualenv里面,为什么不把标准库也安装在那里呢?
-
它不是"安装在 virtualenv 中的",都是符号链接。
-
嗯,我认为这就是 virtualenv 的意义所在 - 是创建一个不会污染或破坏整个系统的环境,而是将其全部限制在私有区域
-
Virtualenvs 用于管理对第三方包的依赖,而不是标准库。你已经有了标准库,那“污染或损坏”究竟是什么?
标签: python macos dependencies virtualenv