6

如何安装请求 以与 python 3.3 一起使用。

我使用 mac,并安装了 python 3.3 和 2.7.1。路径。

2.7.1 : 

which python
/usr/bin/python

3.3:
/Library/Frameworks/Python.framework/Versions/3.3/bin

我试过这些来安装

curl -O http://python-distribute.org/distribute_setup.py
sudo /Library/Frameworks/Python.framework/Versions/3.3/bin/python3 distribute_setup.py
sudo /Library/Frameworks/Python.framework/Versions/3.3/bin/python3 -m easy_install pip
sudo /Library/Frameworks/Python.framework/Versions/3.3/bin/pip install requests

最后一步给出错误:

 File "./requests/utils.py", line 22, in <module>

    from .compat import parse_http_list as _parse_list_header

  File "./requests/compat.py", line 112, in <module>

    from .packages import chardet2 as chardet

ImportError: cannot import name chardet2

我尝试将 PYTHONPATH 设置为:

echo $PYTHONPATH
/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages
[~/tmp] $ 

仍然是同样的错误。

安装chardet2后我也试过了;但

   $ python3.3
Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 01:25:11) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import chardet2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'chardet2'
>>> 

编辑:详细的 pip.log

 Skipping link http://octodex.github.com/ (from https://github.com/kennethreitz/requests); not a file
    Skipping link https://github.com/site/terms (from https://github.com/kennethreitz/requests); not a file
    Skipping link https://github.com/site/privacy (from https://github.com/kennethreitz/requests); not a file
    Skipping link https://github.com/security (from https://github.com/kennethreitz/requests); not a file
  Using version 0.14.2 (newest of versions: 0.14.2, 0.14.1, 0.14.0, 0.13.9, 0.13.8, 0.13.7, 0.13.6, 0.13.5, 0.13.4, 0.13.3, 0.13.2, 0.13.1, 0.13.0, 0.12.1, 0.12.0, 0.11.2, 0.11.1, 0.10.8, 0.10.7, 0.10.6, 0.10.4, 0.10.3, 0.10.2, 0.10.1, 0.10.0, 0.9.3, 0.9.2, 0.9.1, 0.9.0, 0.8.9, 0.8.8, 0.8.7, 0.8.6, 0.8.5, 0.8.4, 0.8.3, 0.8.2, 0.8.1, 0.8.0, 0.7.6, 0.7.5, 0.7.4, 0.7.3, 0.7.2, 0.7.1, 0.7.0, 0.6.6, 0.6.5, 0.6.4, 0.6.3, 0.6.2, 0.6.1, 0.6.0, 0.5.1, 0.5.0, 0.4.1, 0.4.0, 0.3.4, 0.3.3, 0.3.2, 0.3.1, 0.3.0, 0.2.4, 0.2.3, 0.2.2, 0.2.1, 0.2.0)
  Downloading from URL http://pypi.python.org/packages/source/r/requests/requests-0.14.2.tar.gz#md5=488508ba3e8270992ad5b3fb54d364ca (from http://pypi.python.org/simple/requests/)
  Running setup.py egg_info for package requests

    Traceback (most recent call last):

      File "<string>", line 16, in <module>

      File "/private/var/folders/fc/k8b9ds214nv4lqv2x4395khc0000gn/T/pycharm-packaging377147531338803949.tmp/requests/setup.py", line 6, in <module>

        import requests

      File "./requests/__init__.py", line 52, in <module>

        from . import utils

      File "./requests/utils.py", line 22, in <module>

        from .compat import parse_http_list as _parse_list_header

      File "./requests/compat.py", line 112, in <module>

        from .packages import chardet2 as chardet

    ImportError: cannot import name chardet2

    Complete output from command python setup.py egg_info:

    Traceback (most recent call last):

  File "<string>", line 16, in <module>

  File "/private/var/folders/fc/k8b9ds214nv4lqv2x4395khc0000gn/T/pycharm-packaging377147531338803949.tmp/requests/setup.py", line 6, in <module>

    import requests

  File "./requests/__init__.py", line 52, in <module>

    from . import utils

  File "./requests/utils.py", line 22, in <module>

    from .compat import parse_http_list as _parse_list_header

  File "./requests/compat.py", line 112, in <module>

    from .packages import chardet2 as chardet

ImportError: cannot import name chardet2

----------------------------------------

Command python setup.py egg_info failed with error code 1 in /private/var/folders/fc/k8b9ds214nv4lqv2x4395khc0000gn/T/pycharm-packaging377147531338803949.tmp/requests

Exception information:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/pip-1.2.1-py3.3.egg/pip/basecommand.py", line 107, in main
    status = self.run(options, args)
  File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/pip-1.2.1-py3.3.egg/pip/commands/install.py", line 256, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/pip-1.2.1-py3.3.egg/pip/req.py", line 1042, in prepare_files
    req_to_install.run_egg_info()
  File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/pip-1.2.1-py3.3.egg/pip/req.py", line 236, in run_egg_info
    command_desc='python setup.py egg_info')
  File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/pip-1.2.1-py3.3.egg/pip/util.py", line 612, in call_subprocess
    % (command_desc, proc.returncode, cwd))
pip.exceptions.InstallationError: Command python setup.py egg_info failed with error code 1 in /private/var/folders/fc/k8b9ds214nv4lqv2x4395khc0000gn/T/pycharm-packaging377147531338803949.tmp/requests
4

1 回答 1

12

Cheese Shop 页面当前显示版本 0.14.2的“构建状态失败”。看起来像下载这个 tarball 并尝试构建/测试/安装它实际上在 3.3 中失败了。这并不奇怪,因为0.14.1是第一个使用 3.3 的版本,可能还没有多少人使用 3.3...</p>

那么,您能做些什么(除了以适当的方式报告错误)?两种选择:

  • 获取 0.14.1 tarball 并安装它。
  • 获取最新的源并安装它。

第二个实际上更容易,并且可能更好(当它工作时),它实际上是在Requests的文档中建议的。

但是,文档没有告诉您的是,您可以pip在仍然使用最新源的同时获得好处和简单性:

pip-3.3 install git+https://github.com/kennethreitz/requests

我刚刚对此进行了测试,它运行良好,并且(如预期的那样)给了我与请求文档中的说明完全相同的结果。

于 2012-12-07T19:39:00.377 回答