共享需要激活virtualenv的脚本
我把virtualenv和virtualenvwrapper安装在共享的Linux服务器上,默认设置(virtualenvs在〜/ .virtualenvs中)。 我有几个Python脚本只能在正确的virtualenv激活时运行。
现在我想与服务器上的其他用户共享这些脚本,但不要求他们知道有关virtualenv的任何内容…所以他们可以运行python scriptname
脚本名或./scriptname
脚本将运行在我的virtualenv中可用的库。
最干净的方法是什么? 我已经玩了几个select(比如改变shebang线来指向virtualenv提供的解释器),但是它们看起来很不灵活。 有什么build议么?
编辑:这是一个开发服务器,其他几个人有帐户。 但是,他们都不是Python程序员(我目前正在尝试转换它们)。 我只是想让他们很容易地运行这些脚本,并可能检查他们的逻辑,而不暴露非Pythonistas到环境的细节。 谢谢。
如果只是在一台服务器上,那么灵活性是无关紧要的。 修改shebang。 如果您担心这个问题,请在不使用virtualenv的dev服务器上打包,安装一份。 一旦没有发展,无论是本地用户还是危地马拉的用户,virtualenv都不再是正确的工具。
在脚本开始处使用下面的魔术(5)。
#!/usr/bin/env python
更改哪个virtualenv处于活动状态,并使用该virtualenv中的python。 取消激活virtualenv,它仍然运行。
我会投票添加一个指向正确的virtualenv python scriptname
shebang线。 你只要告诉你的用户脚本名的完整path(或放在他们的PATH中),他们甚至不需要知道它是一个Python脚本。
如果你的用户是程序员,那么我不明白你为什么不希望他们知道/了解virtualenv。