main.py:
print('test')
我可以使用以下命令构建:
Python setup.py build_ext --inplace --compiler=msvc
这将创建 *.pyd 文件并将它们放入我的包中所需的文件夹中。
但是我的 main.py 被编译为 main.pyd。
Extension(
'main',
sources=['main.c','main.py'],
include_dirs=[np.get_include()],
)
试过这个:
cl.exe /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:PPython27-32include /Tcmain.c /link /OUT:"main.exe" /SUBSYSTEM:WINDOWS /MACHINE:X86 /LIBPATH:C:PPython27-32libs
但它失败了:
main.c 创建库 main.lib 和对象 main.exp MSVCRT.lib(crtexew.obj(:错误LNK2019:未解析的外部符号 _WinMain@16函数___tmainCRTStartup main中引用.exe:致命错误LNK1120:1个未解析的外部
有没有办法使用Cython将其构建为Windows可执行文件主.exe?
尝试使用 PyInstaller
pip install pyinstaller
根据我的经验,这个框架一直有效
并在必要时下载Cython捆绑: https://github.com/prologic/pyinstaller-cython-bundling
我想到了。
setup.py 必须公开entry_point:
entry_points={
'console_scripts': [
'mypackage-cli=mypackage.command_line:main',
],
},
command_line.py:
from . import cli
def main():
print cli()
__init__.py:
from markdown import markdown
def cli():
return markdown(u'It''s a CLI!')
python setup.py develop
之后 它使用"填充程序"脚本mypackage-cli.exe
创建可执行文件,mypackage-cli-script.py
在 %PYTHONPATH%\Scripts 中
c:tmpmypackage>C:Python27-32Scriptsmypackage-cli.exe
<p>It's a CLI!</p>
它要求Python发行版处于C:Python27-32
我在这里发布了演示:github:mycyexepackage