【问题标题】:How to create a 'pure' virtualenv?如何创建一个“纯”虚拟环境?
【发布时间】: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


【解决方案1】:

变化:

url = "http://localhost:6543/foo/",

收件人:

url = "http://localhost:6543/foo/"

你发送的是一个元组,而不是一个字符串。 抱歉英语不好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 2018-06-18
    • 2023-02-22
    • 2021-02-05
    相关资源
    最近更新 更多