我有一堆想要部署到其他机器的 Python 脚本。问题是,我希望所有东西都是独立的,而不是依赖于其他机器的库。例如,我不想要求用户安装虚拟环境和 pip 以使我的应用程序正常工作。
在我的本地机器上,我使用虚拟环境--no-site-packages
来pip 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
文件现在不是一个选项,所以请尝试解决我的具体问题。