我用 Cython 编译了我的 Python 代码并得到了一个.pyd
文件。我想导入它,所以建议我把它放在我的PYTHONPATH
.
这里是 :
In [1]: import sys
In [2]: sys.path
Out[2]:
['',
'C:\\Users\\loic\\Anaconda2\\lib\\site-packages\\spyder\\utils\\site',
'C:\\Users\\loic\\Anaconda2\\python27.zip',
'C:\\Users\\loic\\Anaconda2\\DLLs',
'C:\\Users\\loic\\Anaconda2\\lib',
'C:\\Users\\loic\\Anaconda2\\lib\\plat-win',
'C:\\Users\\loic\\Anaconda2\\lib\\lib-tk',
'C:\\Users\\loic\\Anaconda2',
'C:\\Users\\loic\\Anaconda2\\lib\\site-packages',
'C:\\Users\\loic\\Anaconda2\\lib\\site-packages\\Sphinx-1.5.1-py2.7.egg',
'C:\\Users\\loic\\Anaconda2\\lib\\site-packages\\win32',
'C:\\Users\\loic\\Anaconda2\\lib\\site-packages\\win32\\lib',
'C:\\Users\\loic\\Anaconda2\\lib\\site-packages\\Pythonwin',
'C:\\Users\\loic\\Anaconda2\\lib\\site-packages\\setuptools-27.2.0-py2.7.egg',
'C:\\Users\\loic\\Anaconda2\\lib\\site-packages\\IPython\\extensions',
'C:\\Users\\loic\\.ipython']
我把我的.pyd
文件放进去C:\\Users\\loic\\Anaconda2\\lib\\site-packages
,当我尝试用 Python 导入它时,我收到了这条消息:
import maido
ImportError: DLL load failed: %1 is not a valid Win32 application.
然后我将我的.pyd
文件放在与我的 Python 程序相同的目录中,我得到了完全相同的消息。
我做了一些研究,发现了那篇文章(使用 cython 扩展一旦编译 [在 Windows 下],如何使用 .pyd's?),但它似乎没有给我更多信息。
我在 Anaconda 2 中使用 Python 64 位,因为我编译的代码需要 Python 64 位(它需要更多内存,否则控制台很快就会在内存中饱和)。
有人能告诉我我应该怎么做才能使它与 Python 64 位一起工作吗?
编辑:如果你需要它,这是我的setup.py
文件
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
from Cython.Distutils import build_ext
from Cython.Build import cythonize
import numpy as np
setup(name = "maido",
include_dirs = [np.get_include()],
cmdclass = {'build_ext': build_ext},
ext_modules = cythonize("C:\Users\python\Documents\maido\maido_cython.pyx"),
)