gpt4 book ai didi

python - django 下的六个问题?

转载 作者:太空狗 更新时间:2023-10-29 22:18:56 24 4
gpt4 key购买 nike

我正在尝试使用一个名为 vcrpy 的包来加速我的 Django 应用程序测试套件的执行。我在 Mac 上使用 django 1.7,使用 Python 2.7。

我在其中一个测试中添加了以下几行:

import vcr
with vcr.use_cassette('recording.yaml'):

结果是导入错误:

    import vcr
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/vcr/__init__.py", line 2, in <module>
from .config import VCR
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/vcr/config.py", line 6, in <module>
from .cassette import Cassette
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/vcr/cassette.py", line 12, in <module>
from .patch import CassettePatcherBuilder
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/vcr/patch.py", line 8, in <module>
from .stubs import VCRHTTPConnection, VCRHTTPSConnection
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/vcr/stubs/__init__.py", line 9, in <module>
from six.moves.http_client import (
ImportError: No module named http_client

VCR 包本身有问题的代码是:

import six
from six.moves.http_client import (
HTTPConnection,
HTTPSConnection,
HTTPMessage,
HTTPResponse,
)

有趣的是:当我只是从一个普通的 python 控制台运行这段代码时,它似乎运行良好,但它会导致在 Django 下或在 django manage.py shell 下出现上述 ImportError。

知道哪里出了问题吗?

(关于六个模块位置的一些额外细节:

当我运行纯 python 控制台时,我得到以下信息:

Python 2.7.8 (v2.7.8:ee879c0ffa11, Jun 29 2014, 21:07:35) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import six
>>> print six.__file__
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/six.pyc

做同样的事情,用 import django;来自 manage.py shell 的 django.setup() 产生完全相同的目录和相同的 six.pyc 文件。

)

最佳答案

对于最初的问题来说可能有点太晚了,但我是通过谷歌来到这里的,所以为了将来引用,这是我的解决方案:

问题

我发现的问题是 mac os 不仅预装了 python,还预装了一些包。六是这些包裹之一,其中存在冲突。预安装的 6 个优先于 pip 安装的 6 个,但 pip 仍然根据它自己安装的内容提供信息(例如 6 个 1.9.0 与 1.4.1)。

预装(版本 1.4.1):

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/

pip 安装(不管你安装了什么,对我来说是 1.9.0):

/Library/Python/2.7/site-packages/

您可以通过运行来检查您是否属于这种情况:

$ python
>>> import six
>>> print six.__file__
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six.py'

修复它

解决方法其实很简单,放上去

export PYTHONPATH="/Library/Python/2.7/site-packages:$PYTHONPATH"

在您的~/.bashrc(或您的shell 使用的任何文件)中。如果您已将 pip 配置为安装在其他地方,请将其放在 pythonpath 中。

关于python - django 下的六个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27656510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com