我無法使用 python-virtualenv 建立虛擬環境

我無法使用 python-virtualenv 建立虛擬環境

目前我已經將我的筆記型電腦從 ubuntu 14.04 更新到 16.04 64bt 版本。

我已經安裝了 python 2.7 和所有內容並嘗試了所有內容,但是 virtualevn 命令在使用 ubntu 14.04 正常工作時拋出如下所示的錯誤,請建議解決它的最佳解決方案。

目前我已經嘗試了很多方法來解決這個問題,如下所示:卸載了 setuptools 和 virutalenv 以及許多依賴項,並按照各種帖子的建議重新安裝。

New python executable in /home/jai/Desktop/jai/jai/bin/python
Installing setuptools, pip, wheel...
  Complete output from command /home/jai/Desktop/jai/jai/bin/python - setuptools pip wheel:
  Collecting setuptools
Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/commands/install.py", line 324, in run
    requirement_set.prepare_files(finder)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/req/req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/req/req_set.py", line 554, in _prepare_file
    require_hashes
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/req/req_install.py", line 278, in populate_link
    self.link = finder.find_requirement(self, upgrade)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/index.py", line 465, in find_requirement
    all_candidates = self.find_all_candidates(req.name)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/index.py", line 423, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/index.py", line 568, in _get_pages
    page = self._get_page(location)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/index.py", line 683, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/index.py", line 792, in get_page
    "Cache-Control": "max-age=600",
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/sessions.py", line 488, in get
    return self.request('GET', url, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/download.py", line 386, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/sessions.py", line 475, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/sessions.py", line 596, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/cachecontrol/adapter.py", line 47, in send
    resp = super(CacheControlAdapter, self).send(request, **kw)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/adapters.py", line 390, in send
    conn = self.get_connection(request.url, proxies)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/adapters.py", line 290, in get_connection
    proxy_manager = self.proxy_manager_for(proxy)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/adapters.py", line 184, in proxy_manager_for
    **proxy_kwargs
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv_support/pip-9.0.1-py2.py3-none-any.whl/pip/_vendor/requests/adapters.py", line 43, in SOCKSProxyManager
    raise InvalidSchema("Missing dependencies for SOCKS support.")
InvalidSchema: Missing dependencies for SOCKS support.
----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 9, in <module>
    load_entry_point('virtualenv==15.1.0', 'console_scripts', 'virtualenv')()
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv.py", line 713, in main
    symlink=options.symlink)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv.py", line 945, in create_environment
    download=download,
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv.py", line 901, in install_wheel
    call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg/virtualenv.py", line 797, in call_subprocess
    % (cmd_desc, proc.returncode))
OSError: Command /home/jai/Desktop/jai/jai/bin/python - setuptools pip wheel failed with error code 2

答案1

這裡的問題(據我所知)是您嘗試使用 python 2.7 來運行 virtualenv,而從我們 10.10 後的 ubuntu/debian 分支用戶的角度來看,virtualenv 的整體目的是能夠編譯 python 2.7在我們的python 3(預先安裝且是系統的一部分)環境中運行程序,而無需在本地安裝python 2.7(這幾乎總是使系統無法修復)。

我在這裡看到的第二個不好的做法是 ubuntu 更新。看起來它在這裡工作(但同樣,此功能幾乎總是不起作用,並且會弄亂您的系統),但您應該使用 Live USB 安裝方法升級到新版本。

無論如何,我建議檢查 python 2.7 編譯工作的幾個先決條件:

需要啟用 32 位元 arch:

sudo dpkg --add-architecture i386

pip 需要是最新的(安裝不會執行此操作,需要在安裝後運行):

pip install --upgrade pip

您需要解決 pip 建置中的所有可能的依賴關係。可能的 MIA 是:

libonig2 autoconf libtool pkg-config python-opengl python-imaging python-pyrex python-pyside.qtopengl idle-python2.7 qt4-dev-tools qt4-designer libqtgui4 libqtcore4 libqt4-xml libqt4-test libqt4-script libqt4-network libqt4-dbus python-pip python-qt4 python-qt4-gl python-numpy python-matplotlib libgle3 python-dev libssl-dev libffi-dev libxslt-dev libxml2-dev libxslt1-dev zlib1g-dev python-ipaddress python-enum34 python-pathlib python-py python-pycparser python-dateutil python-cffi libappindicator1 python-gpgme libindicator7 wget  libgl1-mesa-dri:i386 libgl1-mesa-glx:i386 libc6:i386 liblua5.1-0-dev liblua50-dev liblualib50-dev python-pyside.qtwebkit libgnutls30 libgnutls30:i386 virtualenv build-essential dh-make

要安裝其中一些,您需要合作夥伴 multiverse 和基本 apt-get 設定:

sudo sed -i 's/# deb http:\/\/archive.canonical.com/deb http:\/\/archive.canonical.com/' /etc/apt/sources.list
yes N | sudo dpkg --configure -a
#only if necessary
#sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) main universe restricted multiverse"

在執行其他 pip 命令之前,您需要進入 virtualenv 內部。

祝你好運! :)

答案2

經過長時間的掙扎,我找到了一個解決方案,如果將來有人陷入困境,可以按照以下步驟操作:

我遇到了同樣的問題,我發現這一切都是由於安裝工具和輪子而發生的:

  1. 我已經從 pip 卸載了 setuptools 和wheels
  2. 也來自「apt-get刪除wheel setuptools virutalenv(如果它們存在於我的情況下,wheel和setuptools都存在,並且可能在pip和apt-get安裝中相互衝突)
  3. 下載

  4. 全新安裝這兩個工具

這個方法解決了我在桌上型電腦和筆記型電腦上的問題。
我也在這裡發布了這個解決方案:

https://github.com/pypa/virtualenv/issues/876

相關內容