1

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

在我的本地机器上,我使用虚拟环境--no-site-packagespip install -r requirements.txt完成一切。坏消息是virtualenvironment's 的activate脚本将我的本地路径硬编码到其中,使用该--relocatable选项对这种情况没有帮助,所以我想这是不可能virtualenvironment的?

我想要的是与此类似的东西:

base_app_dir:
 - main_app_dir
 - my_init_script.py
 - bin(includes python binary)
 - lib(includes pip installed packages and python libraries)

这样我就可以指示最终用户 cd intobase_app_dir并执行 a./bin/python -m my_init_script.py但这意味着我现在需要指示 Python./lib在导入包时查看我的文件夹。

我已经尝试过设置os.path.insert(1, 'base_app_dir/lib/site-packages'),但是这个工作基于每个模块。

另外如何查找默认的 Python 模块?现在,例如,当import hashlib它试图从/usr/lib/python2.7/hashlib.py. 我也想部署这些默认的 Python 模块,并指示应用程序从我的自定义位置导入它们。

Py2exe或创建.deb文件现在不是一个选项,所以请尝试解决我的具体问题。

4

0 回答 0