2013-04-23 45 views

回答

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' 
+0

我用这个方法来提取pycrypto包,在这个包里有很多模块,我用'f.extractall()',但不知道把提取的文件放在哪里 – monim 2014-05-04 08:38:37

1

执行以下操作:

  • 查找所需的包的已编译的版本 - 克里斯托夫Gohlke mantains的外观极好集合here - 下载它,并把它放在一个文件夹中(比如C:\ TEMP) 。
  • 在您的可移植Python安装中,找到Scripts文件夹(通常位于Apps文件夹下)并在那里打开命令提示符。
  • 从脚本文件夹中输入命令easy_install C:\temp\numpy-MKL-1.8.0.win32-py2.7.exe(更改exe文件名称,无论安装程序的名称是什么)。

测试安装是否成功:

>>> import numpy 
>>> print numpy.__version__ 
1.8.0 
0

对于大多数外部包,我已经能够导入如下:

  1. 从适当.whl文件解压包源将PyPI安装到安装了可移植Python的磁盘/棒上的定制“包含”文件夹中。
    1. 在我而言,这是F:\py\include - 不管你选择,一定的路径,这个文件夹没有空格或特殊字符在里面,否则便携式Python将无法正确分析它的时候加入到PYTHONPATH
    2. 车轮只是ZIP文件;将.whl重命名为.zip,Windows资源管理器会将其打开。
    3. 通常情况下,您想要检索.whl中的子文件夹,其名称只是您感兴趣的包名:numpysympy
  2. 添加的路径,这包括文件夹到PYTHONPATH环境变量:
    1. 在Windows资源管理器中,在“计算机”右键单击并选择“属性”
    2. 这是一个位版本的依赖,但选择“高级系统设置”(Win7)或“性能”或“高级”选项卡(WinXP)。
    3. 单击'环境变量'
    4. 在'系统变量'下,查找PYTHONPATH。如果有,请选择它并点击“修改”。如果没有,请点击“新建”。
    5. 如果您将其添加为新的,请输入PYTHONPATH作为'变量名'。无论哪种方式,将您的自定义包含文件夹的路径添加到“变量值”中。如果其他路径已经在那里,用分号分隔你的路径和前面的路径。 不要把分号和你的新路径之间放一个空格!可移植的Python显然将前导空间的条目解释为相对路径,参考文件夹是可移植的Python安装文件夹。
    6. 根据需要点击“确定”保存设置并清除对话框。

在某些情况下,需要一个“正式”的安装过程中,这并不总是奏效。我认为sympy是我在将它转移到F:\py\include之前必须编译它的一种情况。此外,我还特别提供了rough timeh5py,但最终通过将其安装到“正常”版本的Python 2.7并将结果h5py文件夹复制到F:\py\include来实现。