我们使用Python脚本使用不同的工具箱或库(如GDAL等)处理卫星图像。我们现在遇到的问题是我们使用的一些第三方Python应用程序(我们没有影响力)需要不同版本的这些python包(例如,Sentinel2 SEN2COR大气校正需要GDAL 1.x,我们也想要使用GDAL 2.x可以修改JPEG2000文件。)
设置这个东西的最佳方法是什么?我更喜欢一种方法,我可以安装多个相同的python版本(例如2.7,但这并不重要),并为每个版本分别安装软件包和版本。就像我一样,我可以确保SEN2COR脚本在他自己的python安装中运行,在那里我安装所需的软件包,再也不用再触摸它,并使用我的其他脚本在另一个python安装中工作。
我认为像virtualenv这样的东西是完美的,但有一点很重要:我们所有的脚本都是命令行脚本,并且有时从各种来源开始,比如MATLAB脚本,R脚本甚至是cron作业。在virtualenv中有没有办法在shell中或从其他程序中执行/usr/bin/python-version-only-for-sen2cor process_data.py arguments
和/location/of/other/python-version reload_table.py
之类的操作?什么是我们设置的最佳方式?我可能只是多次安装python并且总是修改环境变量以在安装软件包时使用不同的python版本,但我想这很容易出错。有什么建议吗?
答案 0 :(得分:1)
您可以查看array_filter或pythonbrew。
我最近刚刚使用过pythonbrew。我只是使用bash脚本运行我的程序(以避免键入整个路径):
#!/bin/bash
~/.pythonbrew/pythons/Python-2.7.7/bin/python my_program.py