在 openSuSE 中使用带有 python3 的 virtualenv
Posted
技术标签:
【中文标题】在 openSuSE 中使用带有 python3 的 virtualenv【英文标题】:Using virtualenv with python3 in openSuSE 【发布时间】:2013-03-25 18:11:14 【问题描述】:我在使用 Python3 的 openSuSE 12.3 中使用 virtualenv 时遇到问题:
我安装了python3
和python3-devel
软件包。
然后我安装了最新的distribute
和pip
,最后使用 pip 安装了 virtualenv。
当我尝试创建 virtualenv 时,出现以下错误:
$ virtualenv-3.3 venv01
Using base prefix '/usr'
New python executable in venv01/bin/python3.3
Also creating executable in venv01/bin/python
Installing distribute.........................................................................................................................................................................................................................................................................................................................................................................................................done.
Installing pip....
Complete output from command /home/user/venv01/bin/python3.3 -x /home/user/venv01/bin/easy_install /usr/local/lib/pytho...ort/pip-1.3.1.tar.gz:
/home/user/venv01/bin/python3.3: can't open file '/home/user/venv01/bin/easy_install': [Errno 2] No such file or directory
----------------------------------------
...Installing pip...done.
Traceback (most recent call last):
File "/usr/local/bin/virtualenv-3.3", line 9, in <module>
load_entry_point('virtualenv==1.9.1', 'console_scripts', 'virtualenv-3.3')()
File "/usr/local/lib/python3.3/site-packages/virtualenv.py", line 979, in main
no_pip=options.no_pip)
File "/usr/local/lib/python3.3/site-packages/virtualenv.py", line 1094, in create_environment
install_pip(py_executable, search_dirs=search_dirs, never_download=never_download)
File "/usr/local/lib/python3.3/site-packages/virtualenv.py", line 667, in install_pip
filter_stdout=_filter_setup)
File "/usr/local/lib/python3.3/site-packages/virtualenv.py", line 1057, in call_subprocess
% (cmd_desc, proc.returncode))
OSError: Command /home/user/venv01/bin/python3.3 -x /home/user/venv01/bin/easy_install /usr/local/lib/pytho...ort/pip-1.3.1.tar.gz failed with error code 2
使用-vvv
运行它会产生一些有趣的输出,表明distribute
被提取到<venv>/local/lib/python3.3/site-packages/
。
我想知道为什么没有将分发安装到<venv>/lib/python3.3/site-packages/
?
有谁知道为什么会发生这种情况以及我如何使用 virtualenv
openSuSE 不用自己编译python3
?
【问题讨论】:
【参考方案1】:[现已在 opensuse 的最新补丁中修复]
[哦!我刚刚意识到你和原来的链接是同一个人。对不起。但我会留下这个,因为它是谷歌搜索在这个问题上的最高结果(正在搜索自己的任何更新),所以它可能对其他人有所帮助。]
这是一个已知问题,已在 https://forums.opensuse.org/english/get-technical-help-here/applications/484475-using-virtualenv-python-3-a.html 讨论,在 https://bugzilla.novell.com/show_bug.cgi?id=809831 有一个未解决的错误
我知道的唯一解决方法是自己安装所有东西。这并不难,我在http://www.acooke.org/cute/GettingPyt0.html 描述了必要的内容
基本上:
从源代码安装 python 3.3(执行“altinstall”以安装为 /usr/local/bin/python3.3)
修复 lib 问题(将 lib_dynload 从 /usr/local/lib64/python3.3 链接到 /usr/local/lib/python3.3)
安装 distutils
安装 virtualenv
那么您可以按预期使用python3.3
和virtual-env-3.3
等。
【讨论】:
是的,我知道 - 我在论坛上问过这个问题。我只是希望***上的某个人对distutils
和site
等相关位有更好的了解,并可能提供解决它的指针。从源代码构建时的主要问题是我必须从一开始就考虑包含诸如 tkinter
集成之类的东西,我很可能会忘记或意识到我实际上需要它们。
确实如此。虽然(与早期的 python 不同)python3.3 确实在make
的末尾列出了缺少的库(所以你仍然必须至少构建它两次——一次希望它没问题,第二次在提供缺失的依赖项之后)。
以上是关于在 openSuSE 中使用带有 python3 的 virtualenv的主要内容,如果未能解决你的问题,请参考以下文章
带有 MySQL 的 Google Web Toolkit (GWT) Web 应用程序在 Eclipse 中运行良好,但在 openSUSE 服务器上无法运行
在 openSUSE 上从头开始构建 python 3.6.3