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:\P\Python27-32\include /Tcmain.c /link /OUT:"main.exe" /SUBSYSTEM:WINDOWS /MACHINE:X86 /LIBPATH:C:\P\Python27-32\libs
但是失败了:
main.c创建库main.lib和对象main.exp MSVCRT.lib(crtexew.obj):错误LNK2019:无法解析的外部符号 函数___tmainCRTStartup main.exe中引用_WinMain @ 16:致命错误LNK1120:1个未解决的外部组件
是否可以使用Cython将其构建为Windows可执行文件main.exe?
答案 0 :(得分:1)
尝试使用PyInstaller
pip install pyinstaller
根据我的经验,此框架始终有效
并在必要时下载Cython捆绑软件: https://github.com/prologic/pyinstaller-cython-bundling
答案 1 :(得分:1)
我知道了。
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
之后的它会在%PYTHONPATH%\ Scripts
中使用“ shim”脚本mypackage-cli.exe
创建可执行文件mypackage-cli-script.py
c:\tmp\mypackage>C:\Python27-32\Scripts\mypackage-cli.exe
<p>It's a CLI!</p>
它要求Python发行版位于C:\Python27-32
我在此处发布了演示:github:mycyexepackage