在 openSuSE 中使用带有 python3 的 virtualenv

Posted

技术标签:

【中文标题】在 openSuSE 中使用带有 python3 的 virtualenv【英文标题】:Using virtualenv with python3 in openSuSE 【发布时间】:2013-03-25 18:11:14 【问题描述】:

我在使用 Python3 的 openSuSE 12.3 中使用 virtualenv 时遇到问题:

我安装了python3python3-devel 软件包。 然后我安装了最新的distributepip,最后使用 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 被提取到&lt;venv&gt;/local/lib/python3.3/site-packages/

我想知道为什么没有将分发安装到&lt;venv&gt;/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.3virtual-env-3.3 等。

【讨论】:

是的,我知道 - 我在论坛上问过这个问题。我只是希望***上的某个人对distutilssite等相关位有更好的了解,并可能提供解决它的指针。从源代码构建时的主要问题是我必须从一开始就考虑包含诸如 tkinter 集成之类的东西,我很可能会忘记或意识到我实际上需要它们。 确实如此。虽然(与早期的 python 不同)python3.3 确实在make 的末尾列出了缺少的库(所以你仍然必须至少构建它两次——一次希望它没问题,第二次在提供缺失的依赖项之后)。

以上是关于在 openSuSE 中使用带有 python3 的 virtualenv的主要内容,如果未能解决你的问题,请参考以下文章

在 Opensuse 飞跃上安装 python 3.5

openSuse 15.2 没有 python38 pip

带有 MySQL 的 Google Web Toolkit (GWT) Web 应用程序在 Eclipse 中运行良好,但在 openSUSE 服务器上无法运行

在 openSUSE 上从头开始构建 python 3.6.3

在 OpenSUSE 上使用 PHP-FPM 安装 OCI8

openSUSE:在不更改默认版本的情况下安装 python 的替代版本