使用Nuitka进行Python独立编译

使用Nuitka进行Python独立编译,python,compilation,nuitka,python-standalone,Python,Compilation,Nuitka,Python Standalone,我无法将简单的python脚本编译成独立的可执行文件。我编写了一个CLI工具来轻松部署我们的前端应用程序,但尽管尝试了我可以提供给Nuitka的所有参数组合,但我从未获得一个可以工作的独立脚本 起初,我没有设法将“Requests”模块引入,因为它是我正在使用的唯一一个默认情况下未包含在Python中的模块。现在,我感觉它被包含在我得到的关于它的一个依赖项的错误中 ./cmd.dist/cmd.exe Traceback (most recent call last): File "/hom

我无法将简单的python脚本编译成独立的可执行文件。我编写了一个CLI工具来轻松部署我们的前端应用程序,但尽管尝试了我可以提供给Nuitka的所有参数组合,但我从未获得一个可以工作的独立脚本

起初,我没有设法将“Requests”模块引入,因为它是我正在使用的唯一一个默认情况下未包含在Python中的模块。现在,我感觉它被包含在我得到的关于它的一个依赖项的错误中

./cmd.dist/cmd.exe
Traceback (most recent call last):
  File "/home/user/code/cli/cmd.dist/cmd.py", line 12, in <module>
    import requests
  File "/home/user/code/cli/cmd.dist/requests/__init__.py", line 58, in requests
  File "/home/user/code/cli/cmd.dist/requests/utils.py", line 26, in utils
  File "/home/user/code/cli/cmd.dist/requests/compat.py", line 42, in compat
ImportError: No module named packages.ordered_dict

我愿意接受任何关于实现我正在尝试的目标的好方法的建议,即在路径中的/usr/local/bin中有一个简单的可执行文件,可以轻松地安装在Unix系统上,而无需安装pip等

好的,感谢@shuttle87,我创建了一个setup.py文件,其中包含脚本和entry_points属性,从而使一切正常工作。脚本是一个数组,仅包含指向我唯一python文件的路径,入口点是一个对象,如下所示:

  {
    'console_scripts': ['cmd=script:main'],
  },
cmd是一个命令,您可以从任何地方调用它来调用脚本和script:main,这意味着当您键入“cmd”时,它将从script.py调用main函数


非常感谢:)

使用setuptools和
python setup.py安装
绝对是实现这一点的方法。那会更好不?因为我觉得python setup.py安装不会安装依赖项。但是,我无法使用setup.py中的scripts属性将脚本添加到路径中。它允许我用“script.py”来称呼它,但我只想用“script”来称呼它。除此之外,它似乎可以与pip install-e一起工作,因此感谢您的建议:)尝试在命令末尾找到如何删除.py。现在,您可以在
设置中指定依赖项,因为
安装需要
,而是
pip install-e
是我在开发中使用的。py还具有脚本功能,用于定义程序的入口点,所有这些都可以在那里完成。
  {
    'console_scripts': ['cmd=script:main'],
  },