简体   繁体   English

使用python 3.3的请求

[英]Requests with python 3.3

How to install Requests to use with python 3.3. 如何安装与python 3.3一起使用的请求

I use mac, and have both python 3.3 and 2.7.1 installed. 我使用mac,并安装了python 3.3和2.7.1。 Paths. 路径。

2.7.1 : 

which python
/usr/bin/python

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

I tried these to install 我试过这些安装

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

the last step gives error: 最后一步给出错误:

 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

I tried setting the PYTHONPATH to: 我尝试将PYTHONPATH设置为:

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

still same error. 还是一样的错误。

I also tried after installing chardet2; 安装chardet2之后我也试过了; but

   $ 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'
>>> 

EDIT: Detailed pip.log 编辑:详细的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

The Cheese Shop page currently shows "build status failing" for version 0.14.2. 奶酪店页面当前显示版本0.14.2的“构建状态失败”。 And it looks like downloading this tarball and trying to build/test/install it does actually fail with 3.3. 看起来像下载这个tarball并尝试构建/测试/安装它确实失败了3.3。 This isn't too surprising, since 0.14.1 was the first version to work with 3.3, and probably not many people are using it with 3.3 yet… 这并不太令人惊讶,因为0.14.1是第一个使用3.3版本的版本,可能没有多少人在3.3版本中使用它...

So, what can you do about it (beyond reporting a bug in the appropriate way)? 那么,您可以做些什么(除了以适当的方式报告错误)? Two choices: 两种选择:

  • Get the 0.14.1 tarball and install that. 获取0.14.1 tarball并安装它。
  • Get the latest source and install that. 获取最新的源代码并安装它。

The second one is actually easier, and probably better (when it works), and it's actually suggested in the documentation for Requests. 第二个实际上更容易,并且可能更好(当它工作时),并且它实际上在Requests 的文档中建议。

However, what the documentation doesn't tell you is that you can get the benefits and simplicity of pip while still using the latest source: 但是,文档没有告诉您的是,在使用最新源时,您可以获得pip的优点和简单性:

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

I just tested this, and it worked fine, and (as expected) gave me the exact same results as following the instructions in the Requests documentation. 我刚刚对此进行了测试,并且工作正常,并且(正如预期的那样)给出了与请求文档中的说明完全相同的结果。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM