我有一堆Python脚本要部署到其他机器上。事实上,我想拥有一切独立的东西,而不是依赖于其他机器的库。例如,我不想要求用户安装虚拟环境和pip,以便我的应用程序正常工作。
在我的本地计算机上,我使用--no-site-packages
和pip install -r requirements.txt
的虚拟环境来完成所有操作。
坏消息是virtualenvironment
的{{1}}脚本将我的本地路径硬编码到其中并使用activate
选项对这种情况没有帮助所以我认为--relocatable
已经不在这个问题?
我想要的是类似的东西:
virtualenvironment
这样我就可以指示最终用户只需cd到base_app_dir:
- main_app_dir
- my_init_script.py
- bin(includes python binary)
- lib(includes pip installed packages and python libraries)
并执行base_app_dir
但这意味着我现在需要指示Python在导入包时查看我的./bin/python -m my_init_script.py
文件夹
我已尝试设置./lib
但这项工作基于每个模块。
如何查找默认的Python模块呢?现在,例如当os.path.insert(1, 'base_app_dir/lib/site-packages')
尝试从import hashlib
获取时。我也想部署这些默认的Python模块,并指示应用程序从我的自定义位置导入它们。
/usr/lib/python2.7/hashlib.py
或创建Py2exe
文件现在不是一个选项,所以请尝试解决我的具体问题。