Cython编译的exe ImportError:没有名为site

时间:2016-06-01 11:18:15

标签: python windows gcc cython

我在关于将Cython编译为exe的帖子中关注this answer

这是我启动时打印的python(对于版本):

Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec  5 2015, 20:40:30) [MSC v.1500 64 bit (AMD64)] on win32

gcc --version

gcc (rubenvb-4.7.2-release) 4.7.2
Copyright (C) 2012 Free Software Foundation, Inc.

我有两个用于编译的文件:setup.pyhello.pyx

hello.pyx

cdef char* say_hello_to(char* name):
    return "Hello %s!" % name
# I know this may not work but removing it does
# not make a difference in the error message
print say_hello_to("bob")

setup.py

from distutils.core import setup
from Cython.Build import cythonize

setup(
    name = 'Hello world app',
    ext_modules = cythonize("hello.pyx"),
)

我没有错误地运行cython hello.pyx --embed并生成了hello.c个文件。然后,当我在Windows 10 64位AMD上运行时,我编译了这个(没有错误):

gcc hello.c -I \Python27\include\ -L \Python27\libs\ -l python27 -o test.exe -D MS_WIN64

但是,当我在命令提示符下运行test.exe时,它将显示错误:

ImportError: No module named site

我用Google搜索了,我能找到的最接近的问题是Python (Windows) - ImportError: No module named site。答案表明我set PYTHONPATHPYTHONHOMEPATH。我用以下几个命令做了相应的操作:

SET PYTHONHOME=C:\Python27
SET PYTHONPATH=C:\Python27\Lib
SET PATH=%PYTHONHOME%;%PYTHONPATH%;C:\MinGW\bin\;C:\MinGW;C:\Python27\Scripts;

不幸的是,在执行此操作后,仍然会出现相同的错误。

如何解决此ImportError

0 个答案:

没有答案