我在关于将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.py
和hello.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
PYTHONPATH
,PYTHONHOME
和PATH
。我用以下几个命令做了相应的操作:
SET PYTHONHOME=C:\Python27
SET PYTHONPATH=C:\Python27\Lib
SET PATH=%PYTHONHOME%;%PYTHONPATH%;C:\MinGW\bin\;C:\MinGW;C:\Python27\Scripts;
不幸的是,在执行此操作后,仍然会出现相同的错误。
如何解决此ImportError
?