使用python 3.3的请求

bsr*_*bsr 6 python pip python-requests

如何安装 与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
Run Code Online (Sandbox Code Playgroud)

我试过这些安装

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
Run Code Online (Sandbox Code Playgroud)

最后一步给出错误:

 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
Run Code Online (Sandbox Code Playgroud)

我尝试将PYTHONPATH设置为:

echo $PYTHONPATH
/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages
[~/tmp] $ 
Run Code Online (Sandbox Code Playgroud)

还是一样的错误.

安装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'
>>> 
Run Code Online (Sandbox Code Playgroud)

编辑:详细的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
Run Code Online (Sandbox Code Playgroud)

aba*_*ert 12

奶酪店网页目前显示"建状态失败"的0.14.2版本.看起来像下载这个tarball并尝试构建/测试/安装它确实失败了3.3.这并不太令人惊讶,因为0.14.1是使用3.3的第一个版本,并且可能没有多少人在3.3中使用它...

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

  • 获取0.14.1 tarball并安装它.
  • 获取最新的源代码并安装它.

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

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

pip-3.3 install git+https://github.com/kennethreitz/requests
Run Code Online (Sandbox Code Playgroud)

我刚刚对此进行了测试,并且工作正常,并且(正如预期的那样)给出了与请求文档中的说明完全相同的结果.