0

我用 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"),
      )
4

0 回答 0