打包和部署自包含的Python应用程序
我有一堆Python脚本,我想部署到其他机器上。问题是,我希望所有东西都是独立的,而不依赖于其他机器的库。例如,我不想请求用户安装虚拟环境和pip以使我的应用程序正常工作 在我的本地机器上,我使用带有打包和部署自包含的Python应用程序,python,software-packaging,Python,Software Packaging,我有一堆Python脚本,我想部署到其他机器上。问题是,我希望所有东西都是独立的,而不依赖于其他机器的库。例如,我不想请求用户安装虚拟环境和pip以使我的应用程序正常工作 在我的本地机器上,我使用带有--无站点软件包和pip install-r requirements.txt的虚拟环境使一切就绪。 坏消息是virtualenvironment的activate脚本硬编码了我的本地路径,使用--relocate选项对这种情况没有帮助,所以我想virtualenvironment是不可能的 我想要
--无站点软件包和pip install-r requirements.txt的虚拟环境使一切就绪。
坏消息是virtualenvironment
的activate
脚本硬编码了我的本地路径,使用--relocate
选项对这种情况没有帮助,所以我想virtualenvironment
是不可能的
我想要的是类似的东西:
base_app_dir:
- main_app_dir
- my_init_script.py
- bin(includes python binary)
- lib(includes pip installed packages and python libraries)
因此,我可以指示最终用户只需将cd放入base\u app\u dir
并执行/bin/python-m my\u init\u script.py
,但这意味着我现在需要指示python在导入包时查看我的/lib
文件夹
我试过设置os.path.insert(1,'base\u app\u dir/lib/site packages')
,但这是基于每个模块的
另外,如何查找默认Python模块?例如,现在当导入hashlib时,它试图从/usr/lib/python2.7/hashlib.py
获取它。我也想部署这些默认Python模块,并指示应用程序从我的自定义位置导入它们
Py2exe
或创建.deb
文件现在不是选项,请尝试解决我的具体问题。您尝试过吗?它完全满足您的需要,它将查找依赖项并为特定操作系统创建一个独立的、自包含的可执行文件,即使没有安装python也可以运行。您尝试过吗?它完全满足您的需要,它将查找依赖项,并为特定操作系统创建一个独立的、自包含的可执行文件,该操作系统甚至可以在未安装python的情况下运行。