繁体   English   中英

virtualenv 挂断了安装 setuptools

[英]virtualenv hung up on installing setuptools

直到最近才遇到这个问题,但是当尝试创建一个新的虚拟环境(Windows 7、python 2.7.13、virtualenv==15.1.0)时,它只是挂在“安装设置工具、pip、轮...”上并执行crtl^c 给你这个:

PS C:\Users\John\Envs> virtualenv.exe rmapvenv
New python executable in C:\Users\John\Envs\test\Scripts\python.exe
Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
  File "c:\python27\lib\runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "c:\python27\lib\runpy.py", line 72, in _run_code
    exec code in run_globals
  File "C:\Python27\Scripts\virtualenv.exe\__main__.py", line 9, in <module>
  File "c:\python27\lib\site-packages\virtualenv.py", line 713, in main
    symlink=options.symlink)
  File "c:\python27\lib\site-packages\virtualenv.py", line 945, in create_environment
    download=download,
  File "c:\python27\lib\site-packages\virtualenv.py", line 901, in install_wheel
    call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
  File "c:\python27\lib\site-packages\virtualenv.py", line 769, in call_subprocess
    line = stdout.readline()
KeyboardInterrupt

在 virtualenv.py 中添加一些打印语句给了我这个:

Running command C:\Users\John\Envs\test\Scripts\python.exe - setuptools pip wheel

Collecting setuptools

  Using cached setuptools-35.0.1-py2.py3-none-any.whl

Collecting pip

Collecting wheel

它似乎挂在轮子上

使用-v开关获取详细输出。

对我来说,这是一个网络连接。 具体来说,我试图使用virtualenv的服务器是从互联网上防火墙,我需要通过代理出去。 除此之外,virtualenv似乎不尊重环境中的代理设置,并且它没有命令行切换。

所以使用pip预先缓存/预先下载3个所需的包:

sudo pip download setuptools pip wheel --proxy http://<yourproxyhere>

然后你可以运行virtualenv ,它将使用你刚刚下载的缓存包。

一切似乎围绕着不安装的车轮,所以如果有人能够解释这一点,请做。 这就是我为安装它所做的。 我跑了:

virtualenv venv --no-wheel

然后,激活我的虚拟环境并运行:

pip install --upgrade pip
pip install setuptools --no-use-wheel --upgrade
pip install wheel --no-cache

据我所知,一切正常

我也碰到了这个,上面的答案都没有奏效。 原来是一个糟糕的缓存条目。

使用$ virtualenv -vv venv我得到输出结束于:

Running command /Users/ghartmann/cod...test/venv/bin/python - setuptools pip wheel
Collecting setuptools
    Cache entry deserialization failed, entry ignored

它会阻塞那里然后当你打断你看到堆栈表明它被阻止下载wheel包。

在macos上,pip缓存在这里: ~/Library/Caches/pip
删除该目录修复了该问题,因为它能够重新初始化缓存。

我正在使用pipenv安装一个venv:

$ pipenv install
Creating a virtualenv for this project…
Pipfile: /home/seba/Sources/neogeo/grandlyon/photon-setup/Pipfile
Using /usr/bin/python3 (3.6.7) to create virtualenv…
⠦ Creating virtual environment...

详细模式没有给我更多的信息, - --clear是无用的但是使用ps auxf我看到oython进程没有等待:

 [...] S+   09:59   0:00  |   |       \_ /home/seba/Sources/neogeo/grandlyon/photon-setup/venv/bin/python3 - setuptools pip wheel

它停止安装setuptools。

像往常一样创建virtualenv证实了我:

$ virtualenv -vv --python=python3 venv
[...]
Running command /home/seba/Sources/n...tup/venv/bin/python3 - setuptools pip wheel
Looking in links: /usr/local/lib/python3.6/dist-packages/virtualenv_support
Collecting setuptools
[Waiting forever]

该修复程序正在删除pip缓存:

$ rm -Rf ~/.cache/pip/ ~/.cache/pip-tools/

我在使用pipenv的公司防火墙后面。 即使Pipfile指向我们本地的 package 索引(不是 PyPi), pip调用的pipenv仍在尝试使用 PyPi 并挂在

/home/eric/.local/share/virtualenvs/venv/bin/python - setuptools pip wheel

我的解决方案是在 pip.conf 中设置索引pip.conf或使用PIP_INDEX_URL环境变量,例如:

PIP_INDEX_URL=http://my.corporate.index/simple pipenv lock

我不确定它是否会有所帮助,但我有完全相同的问题,虽然在linux debian(确切地说是raspbian Jessie light)和python 3.6。 轮子在创建virtualenv时被绞死,我在ctrl-c(使用python 3.6和linux路径)后得到了与你相同的错误消息。 然后我解除了互联网连接问题,解决了这些问题后,正确安装了车轮。

暂无
暂无

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

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