Virtualenv和Pip永远悬挂

Cam*_*all 7 python django pip virtualenv python-3.x

我正在运行一个django项目,其中的virtualenv工作完全正常,直到今天下午.我去运行源代码my-env/bin/activate它似乎激活(它给了我通常的命令提示符),但是当我尝试python manage.py runserver它时说它无法找到django.我运行了一个python脚本并尝试导入django,果然它说没有名为django的模块.所以我删除了这个virtualenv并创建了一个新的并且做了一个pip install -r requirements.txt.就在那时我注意到pip永远悬挂在类型上^C它会给我一个很长的追溯,我在下面提供.一旦发生这种情况,我再一次尝试删除virtualenv并重新开始,当我输入virtualenv new-env它时会挂起"安装setuptools,pip,wheel ......"并在进入时进行了长时间的追溯^C.我已经浏览了所有在线论坛,并尝试了一切来解决这个问题,似乎没有任何工作.如果有人对如何解决这个问题有任何想法,我会非常感激.

Installing setuptools, pip, wheel...^CTraceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 11, in <module>
done.
    sys.exit(main())
  File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 669, in main
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 2327, in <module>
    raise SystemExit(popen.wait())
  File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1384, in wait
    main()
  File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 711, in main
    symlink=options.symlink)
  File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 944, in create_environment
    download=download,
  File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 900, in install_wheel
    call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT)
  File "/usr/local/lib/python2.7/site-packages/virtualenv.py", line 767, in call_subprocess
    line = stdout.readline()
KeyboardInterrupt
    pid, sts = _eintr_retry_call(os.waitpid, self.pid, 0)
  File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 476, in _eintr_retry_call
    return func(*args)
KeyboardInterrupt
Run Code Online (Sandbox Code Playgroud)

use*_*000 7

可能不是很有帮助,但我遇到了相同的症状,发现使用详细选项会有所帮助:

mkvirtualenv new-env -v
Run Code Online (Sandbox Code Playgroud)

输出指向我遇到的代理问题,阻止了setuptool的使用,我通过修复代理设置解决了该问题:

Installing setuptools, pip, wheel...
Collecting setuptools
Retrying (Retry(total=4, connect=None, read=None, redirect=None)) 
after connection broken by 'ProxyError('Cannot connect to proxy.', 
timeout('timed out',))': /devpi/setuptools/
Run Code Online (Sandbox Code Playgroud)


Tee*_*kin 5

我在这方面遇到了很多麻烦,我从各种 StackOverflow 讨论中尝试过的一切都没有帮助。我已经绝对确定这不是网络问题,实际上我希望从 Ubuntu 16 升级到 18 会神奇地修复它......但它没有。所以我想我必须真正修复它。

我开始怀疑它与我的用户目录有关,因为当我以 root 用户身份尝试它时它起作用了。此外,我已将整个主目录复制到临时磁盘,然后在升级后复制回主硬盘驱动器(因为我想要全新安装 Ubuntu 18 的“最小”选项)。所以我开始怀疑我的主文件夹中的某些东西是有罪的。

virtualenv使用该-vv选项运行仅显示它正在停止:Collecting setuptools

考虑到许多人建议检查互联网连接,我认为这可能与缓存有关。所以我尝试清空~/.cache目录:

rm -rf ~/.cache/*
Run Code Online (Sandbox Code Playgroud)

virtualenv挂在另一个终端窗口中的命令立即继续并在几秒钟内完成。

我不知道在运行一堆应用程序的情况下以这种方式清空缓存是否被认为是勇敢的,但无论如何,它做到了。

更新

@t354 建议只删除~/.cache/pip

rm -rf ~/.cache/pip
Run Code Online (Sandbox Code Playgroud)

自己没试过,但如果它也有效,那么它可能比删除里面的所有东西更安全 ~/.cache