4

由于管理员权限,我无法在我的机器上安装 Python,但我确实成功下载/打开了 Portable Python。我在 Windows 7 64 位机器上。我如何才能使用以前的外部库,例如 Numpy 或 Gmpy?

4

4 回答 4

4

easy_install 正在尝试从源代码安装。gmpy 和 gmpy2 是 C 扩展,需要存在兼容的 C 编译器和其他库(GMP;以及 gmpy2 的 MPFR 和 MPC)。在 Windows 上从源代码安装通常很困难。安装程序包括扩展的预编译版本。

一种选择是从安装程序中提取已编译的二进制文件。7-Zip能够打开安装程序文件,您可以提取二进制文件。在标准的 Python 安装中,提取的二进制文件只需放在 site-packages 目录中。如有必要,您可以在另一个系统上进行提取并复制文件。

您还可以使用 zipfile 模块来提取已编译的扩展名。这是一个例子。您将需要修改确切的文件位置以反映您的系统。

>>> import zipfile
>>> f=zipfile.ZipFile('gmpy2-2.0.0.win-amd64-py3.3.exe','r')
>>> f.namelist()
['PLATLIB/gmpy2-2.0.0-py3.3.egg-info', 'PLATLIB/gmpy2.pyd']
>>> f.extract('PLATLIB/gmpy2.pyd')
'C:\\Python33\\PLATLIB\\gmpy2.pyd'
于 2013-04-25T04:51:50.453 回答
2

请执行下列操作:

  • 找到所需包的已编译版本 - Christoph Gohlke在这里保存了一个优秀的集合- 下载它并将它放在一个文件夹中(比如 C:\temp)。
  • 在您的 Portable Python 安装中,找到 Scripts 文件夹(通常在 Apps 文件夹下)并在那里打开命令提示符。
  • 从 Scripts 文件夹中键入命令easy_install C:\temp\numpy-MKL-1.8.0.win32-py2.7.exe(将 exe 文件名更改为安装程序的名称)。

测试是否安装成功:

>>> import numpy
>>> print numpy.__version__
1.8.0
于 2014-01-02T11:50:38.883 回答
0

请参考https://groups.google.com/forum/?fromgroups#!topic/portablepython/BVQOHFNXilU

据此,对于大多数包,您应该能够轻松安装到您的 Portable Python 根文件夹中,然后在您的 Python 脚本中正常导入它。

于 2013-04-23T14:34:51.130 回答
0

对于大多数外部包,我已经能够按如下方式导入它们:

  1. 从 PyPI 上的适当文件中提取包源到.whl安装了 Portable Python 的磁盘/棒上的自定义“包含”文件夹中。
    1. 在我的情况下,这是F:\py\include - 无论您选择什么,请确保此文件夹的路径中没有空格或特殊字符,否则 Portable Python 在添加到PYTHONPATH.
    2. 轮子只是 ZIP 文件;重命名.whl.zip,Windows 资源管理器将直接打开它。
    3. 通常您想检索.whl其名称只是您感兴趣的包名称的子文件夹:numpy,sympy等。
  2. 将此包含文件夹的路径添加到PYTHONPATH环境变量中:
    1. 在 Windows 资源管理器中,右键单击“计算机”并选择“属性”
    2. 这有点取决于版本,但请选择“高级系统设置”(Win7) 或“性能”或“高级”选项卡 (WinXP)。
    3. 点击“环境变量”
    4. 在“系统变量”下,查找PYTHONPATH. 如果它在那里,请选择它并单击“编辑”。如果没有,请单击“新建”。
    5. 如果您要添加新的,请键入PYTHONPATH“变量名称”。无论哪种方式,将自定义包含文件夹的路径添加到“变量值”中。如果其他路径已经存在,请用分号将您的路径与之前的任何路径分开。不要在分号和新路径之间放置空格!Portable Python 显然将带有前导空格的条目解释为相对路径,参考文件夹是 Portable Python 安装文件夹。
    6. 根据需要单击“确定”以保存设置并清除对话框。

在某些需要“正式”安装过程的情况下,这并不总是有效。我认为sympy是一种情况,我必须在将其转移到F:\py\include. 此外,我在. _h5pyh5pyF:\py\include

于 2015-05-12T00:01:09.410 回答