Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打包和部署自包含的Python应用程序_Python_Software Packaging - Fatal编程技术网

打包和部署自包含的Python应用程序

打包和部署自包含的Python应用程序,python,software-packaging,Python,Software Packaging,我有一堆Python脚本,我想部署到其他机器上。问题是,我希望所有东西都是独立的,而不依赖于其他机器的库。例如,我不想请求用户安装虚拟环境和pip以使我的应用程序正常工作 在我的本地机器上,我使用带有--无站点软件包和pip install-r requirements.txt的虚拟环境使一切就绪。 坏消息是virtualenvironment的activate脚本硬编码了我的本地路径,使用--relocate选项对这种情况没有帮助,所以我想virtualenvironment是不可能的 我想要

我有一堆Python脚本,我想部署到其他机器上。问题是,我希望所有东西都是独立的,而不依赖于其他机器的库。例如,我不想请求用户安装虚拟环境和pip以使我的应用程序正常工作

在我的本地机器上,我使用带有
--无站点软件包
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的情况下运行。