python - python: 在两个 python 安装之间共享 python 站点软件包库

  显示原文与译文双语对照的内容
0 0

我的C: 驱动器上安装了 python 2.7. 然后在单独的机器上安装 python 2.7并将该文件夹复制到 J: 驱动器上。 如何共享或者指向 python的J: 安装以使用我的C: 驱动站点包包?

i.e 。如何在同一台机器的两个安装的python 之间共享我的网站包路径?

当我尝试用pip和 virtualenv 安装wxPython时,会得到以下信息:

pip install wxPython
Downloading from URLhttp://downloads.sourceforge.net/wxpython/wxPython-src-3.0.2.0.tar.bz2 (from http://wxPython.org/download.php)
Running setup.py egg_info for package wxPython
Traceback (most recent call last):
 File"<string>", line 16, in <module>
IOError: [Errno 2] No such file or directory: '.virtualenvsengineerbuildwxPythonsetup.py'
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File"<string>", line 16, in <module>
IOError: [Errno 2] No such file or directory:. virtualenvsengineerbuildwxPythonsetup.py

我发现在 Windows 上构建和编译很困难,但是wxPython安装程序似乎与 virtualenv 一起工作。

但是,我要求在 virtualenv 中几乎所有软件包都可以引用,而且用户可以在以后的python 安装中安装这些软件包,这是有用的?

到目前为止,我无意中发现了 PkgResource api,这也许就是我所需要的。

时间:原作者:6个回答

0 0

解决这里外部依赖项的方法,用户在 virtualenv 包中没有包含它的权限是使用名为pkg_resources的包:

python 代码

# One approach is to find pythonhome by an environment variable
# Another is to use the windows registry but beware of different
# issue regarding 64 and 32 bit windows as shown in the link below:

python _winreg

import pkg_resources
import os
pythonhome = os.environ["PYTHONHOME"]
pkgs = pkg_resources.find_distributions(pythonhome +"/Lib/site-packages")
for pkg in pkgs:
 pkg_resources.working_set.add(pkg)
# import the modules
# Note: that this does not import the dependencies of the packages imported
# You could get the dependencies by following the guide here:

pkg_resource文档插件

keeping in mind the following:
(Naive way of doing this:)
import pkg_resources
distributions, errors = pkg_resources.working_set.find_plugins(pkg_resources.Environment(("C:/Python27/Lib/site-packages",)))
for dsts in distributions:
 for requirements in dsts.requires():
 # load the requirements aswell
 for requiredDsts in list(distributions):
 if requirements.project_name == requiredDsts.project_name and requirements.version> = requiredDsts.specs[0][1]:
 # the> = may not be whats required as it is specified in specs[0][0]
 pkg_resources.working_set.add(requiredDsts)

使用 virtualenv 提供的链接,按照( desthuilliers ) https://pypi.python.org/pypi/virtualenv/12.0.5 提供的指导,在 virtualenv ( 。desthuilliers提供的链接) 上,为 Windows 用户 Windows 教程获取设置

  1. 激活当前虚拟环境

  2. 从网站下载并安装 wxPython ( 它将获取 virtualenv )

  3. 通过pip或者easy_install安装任何其他依赖

  4. 使用pkg_resources执行上述操作,包括任何无法通过pip或者easy_install安装的软件包,并且用户必须手动安装这些软件包。

注:你只能导入适合 python 解释器本身的包,如 32位或者 64位

原作者:
...