首页 / 知识
关于可执行文件:Python部署和/ usr / bin / env可移植性
2023-04-14 00:19:00

Python deployment and /usr/bin/env portability在所有可执行Python脚本的开头,我都添加了shebang行:
我正在
如果可能的话,我不想更改每个可执行文件的shebang行;但是,我没有对该计算机的管理访问权限来更改
我想避免这种情况,因为系统可能具有比Python 2.4更高的版本,或者可能具有Python 2.5但没有Python 2.4。 什么是优雅的解决方案? [编辑:]我在提出问题时还不够具体-我想让用户无需手动配置即可执行脚本(例如,路径更改或 " env "简单地执行它在PATH env var中找到的第一件事。要切换到其他python,请在调用脚本之前将该Python \\可执行文件的目录放在路径之前。 一个非常骇人听闻的解决方案-如果检查失败,请使用此功能(可能会大大改进)来确定可用的最佳解释器,确定它是否可以接受,如果可以,请使用os.system或类似的方法重新启动您的脚本您的sys.argv使用新的解释器。
如果正在运行脚本,则可以将PATH变量设置为首先指向私有bin目录:
然后,当您执行python脚本时,它将使用python 2.4。您必须更改登录脚本才能更改PATH。 或者使用所需的显式解释器运行python脚本:
如果您(1)绝对要使用shebangs并且(2)能够在构建过程中使用Autotools,那么这里是一个解决方案。 我昨晚才发现,您可以使用autoconf宏 因此,您的过程将是:
然后您生成的Python脚本将始终具有适当的shebang。 因此,如果不切实际,至少有此解决方案。 @morais:这是一个有趣的想法,但我认为也许我们可以再走一步。也许有一种方法可以使用Ian Bicking的virtualenv进行以下操作:
我不知道virtualenv是否能够做到这一点,所以我很快就会解决它。 :) |
最新内容
相关内容
linux把命令变成脚本?
linux把命令变成脚本?,系统,环境,工作,脚本,命令,信息,基础,代码,文件,变量,如何编写简单的Shell脚本文件之Linux的基本操作1、在开始Shell编linux脚本命令输信息?
linux脚本命令输信息?,系统,信息,代码,脚本,数据,工具,发行,命令,变量,文件,linux下shell脚本命令shell变量调出命令。linux中的shell脚本有多linux上启动脚本命令?
linux上启动脚本命令?,服务,状态,系统,代码,脚本,工作,周期性,命令,文件,方法,Python脚本在Linux下如何自启动与定时任务的实例详解Linux在启linux部署环境的命令?
linux部署环境的命令?,环境,基础,项目,管理,软件,状态,设备,平台,网络,传播,如何搭建一个Linux驱动编写环境如何编写Linux操作系统下的设备驱linux下编写脚本命令?
linux下编写脚本命令?,代码,时间,工具,标准,系统,实战,平台,最新,网站,文件,linux写脚本,需要ls只显示前10个文件,怎么实现?在linux中如果用lslinux定时器脚本命令?
linux定时器脚本命令?,系统,代码,时间,工具,工作,定期,周期性,异常,任务,脚本,Linux设置定时任务打开终端窗口,并使用 crontab -e 命令编辑当前linux命令项目部署?
linux命令项目部署?,项目,服务,环境,软件,系统,代理,管理,统一,做好,业务,怎么把php部署到apache服务器上linux?1、在linux部署php项目的方法:linux停止脚本命令行?
linux停止脚本命令行?,系统,工作,平台,命令,基础,第一,环境,信息,终端,程序,在linux系统里,如何用命令行实现在10分钟后关闭系统?1、shutdownlinux命令运行脚本?
linux命令运行脚本?,代码,系统,工作,设计,状态,命令,脚本,文件,目录,终端,运行linux脚本,遇到要按回车键,怎么让它自动应答,继续运行脚本?1、linux部署项目的命令?
linux部署项目的命令?,项目,系统,设备,环境,工作,基础,传播,信息,标准,代码,Linux部署springBoot项目并且查看控制台日志指定路径:如下: /data/wlinux脚本赋权限命令?
linux脚本赋权限命令?,系统,档案,工作,命令,工具,脚本,权限,文件,程序,文件名,在Linux中执行文件时候权限不够,怎么解决1、修改权限可以解决该linux常用部署命令?
linux常用部署命令?,工作,地址,系统,信息,命令,目录,标准,基础,管理,工具,Linux命令大全linux常用命令有pwd命令、cd命令、ls命令、cat命令、g