简体   繁体   English

尝试使用pip3.4在CentOS 5.11 Server中安装python模块(beautifulsoup)时出错

[英]Error when trying to install python module (beautifulsoup) in CentOS 5.11 Server using pip3.4

I wrote a python3.4 script to fetch some data from an RSS feed that works just as expected. 我写了一个python3.4脚本来从RSS提要中获取一些数据,该数据可以按预期工作。 I wanted to create a cronjob to execute the script with my VPS (CentOS 5.11). 我想创建一个cronjob以使用我的VPS(CentOS 5.11)执行脚本。 The server have the regular python and python3.4 installed without problem (i can run python3.4 scripts without problem). 服务器已经安装了常规的python和python3.4,没有问题(我可以运行python3.4脚本,没有问题)。 The problem is that i need Beautiful Soup installed for python3.4 for my script to work, but when i try to install it, i receive an error from the server: I use pip3.4 install beautifulsoup to install the module. 问题是我需要为python3.4安装的Beautiful Soup才能运行我的脚本,但是当我尝试安装它时,我从服务器收到错误消息:我使用pip3.4 install beautifulsoup来安装模块。

Exception:
  Traceback (most recent call last):
    File "/usr/local/lib/python3.4/site-packages/pip/basecommand.py", line 232, in main
      status = self.run(options, args)
    File "/usr/local/lib/python3.4/site-packages/pip/commands/install.py", line 339, in run
      requirement_set.prepare_files(finder)
    File "/usr/local/lib/python3.4/site-packages/pip/req/req_set.py", line 333, in prepare_files
      upgrade=self.upgrade,
    File "/usr/local/lib/python3.4/site-packages/pip/index.py", line 305, in find_requirement
      page = self._get_page(main_index_url, req)
    File "/usr/local/lib/python3.4/site-packages/pip/index.py", line 783, in _get_page
      return HTMLPage.get_page(link, req, session=self.session)
    File "/usr/local/lib/python3.4/site-packages/pip/index.py", line 872, in get_page
      "Cache-Control": "max-age=600",
    File "/usr/local/lib/python3.4/site-packages/pip/_vendor/requests/sessions.py", line 473, in get
      return self.request('GET', url, **kwargs)
    File "/usr/local/lib/python3.4/site-packages/pip/download.py", line 365, in request
      return super(PipSession, self).request(method, url, *args, **kwargs)
    File "/usr/local/lib/python3.4/site-packages/pip/_vendor/requests/sessions.py", line 461, in request
      resp = self.send(prep, **send_kwargs)
    File "/usr/local/lib/python3.4/site-packages/pip/_vendor/requests/sessions.py", line 573, in send
      r = adapter.send(request, **kwargs)
    File "/usr/local/lib/python3.4/site-packages/pip/_vendor/cachecontrol/adapter.py", line 43, in send
      resp = super(CacheControlAdapter, self).send(request, **kw)
    File "/usr/local/lib/python3.4/site-packages/pip/_vendor/requests/adapters.py", line 370, in send
      timeout=timeout
    File "/usr/local/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/connectionpool.py", line 518, in urlopen
      body=body, headers=headers)
    File "/usr/local/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/connectionpool.py", line 322, in _make_request
      self._validate_conn(conn)
    File "/usr/local/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/connectionpool.py", line 727, in _validate_conn
      conn.connect()
    File "/usr/local/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/connection.py", line 238, in connect
      ssl_version=resolved_ssl_version)
    File "/usr/local/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py", line 254, in ssl_wrap_socket
      return context.wrap_socket(sock)
    File "/usr/local/lib/python3.4/ssl.py", line 365, in wrap_socket
      _context=self)
    File "/usr/local/lib/python3.4/ssl.py", line 542, in __init__
      raise ValueError("check_hostname requires server_hostname")
  ValueError: check_hostname requires server_hostname

I read about the virtual python environments, but i don't know if that will work the way that i wanted to work. 我阅读了有关虚拟python环境的信息,但我不知道这是否可以按照我想要的方式工作。 I have root access to the server, i'm doing this through SSH. 我具有对服务器的root访问权限,我正在通过SSH进行此操作。

Any help will be appreciated. 任何帮助将不胜感激。


If i use pip3.4 --trusted-host pypi.python.org install <package_name> i can upgrade pip3.4 and install urllib3, but when i try to install Beautiful Soup i receive this error: 如果我使用pip3.4 --trusted-host pypi.python.org install <package_name>我可以升级pip3.4并安装urllib3,但是当我尝试安装Beautiful Soup时,我会收到此错误:

Collecting beautifulsoup
/usr/local/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
  SNIMissingWarning
  Downloading BeautifulSoup-3.2.1.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-zgrqhr3v/beautifulsoup/setup.py", line 22
        print "Unit tests have failed!"
                                      ^
    SyntaxError: Missing parentheses in call to 'print'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-zgrqhr3v/beautifulsoup/

You are installing beautifulsoup version 3 which only supports python 2. You need to install version 4 of beautifulsoup which does support python 3. 您正在安装仅支持python 2的beautifulsoup版本3。您需要安装不支持python 3的beautifulsoup版本4。

Do

pip3.4 install beautifulsoup4

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

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