如何在Linux共享的公司环境中部署一个简单的Python应用程序?

我已经写了一个(很明显)优秀的Python(Linux下)工具,我想与我的同事分享。 我们在不同的机器上工作,但拥有相同的共享环境。 另外,我们是用户,所以没有办法轻松安装依赖关系。

现在这里有一个问题:我喜欢python,我的用户不关心。 他们确实可以访问公司范围的python安装(一个简单的),但他们不想关心(呃,这是可以理解的,不是每个人都是程序员)。

问题是:在这样的共享环境中,python解释器是可用的,但是我的应用程序中没有模块,那么与其他用户共享我的工具的最简单方法是什么?

正如你可能想象的,我的用户不想安装任何东西(特别是在用户空间中),configurationpath可能会在接受的边缘。 解决scheme不应该像一个冻结包装一切,这可能是一个矫枉过正的…

对于用户应该是:复制一个特定的tar.gz或去应用程序文件夹(共享),运行应用程序,完成。

所以也许模块应该以某种方式embedded到应用程序中? 或者我应该(在我的共享家中)托pipe库中的模块并设置一些path? 或者,也许一个virtualenv可以帮助,如果用户可以复制整个环境与path?

我希望你看到我的问题:D

谢谢!

对于“相同的共享环境”,您可以这样做:

  1. 安装your-script/your/shared/home/virtualenv

     $ pip install your-app.tar.gz -E /your/shared/home/virtualenv 
  2. 建立链接:

     $ ln -s /your/shared/home/virtualenv/bin/your-script /shared/app/folder/ 
  3. 您的同事可以将脚本调用为/shared/app/folder/your-script或将/shared/app/folder/PATH

特征:

  • 您可以通过控制符号链接指向的位置来选择脚本的哪个版本。 旧版本可以作为/your/shared/home/virtualenv-old-version/bin/your-script
  • 你可以使用C语言编写的Python扩展
  • 如果你通过pip install -e .安装到virtualenv中pip install -e . ; 它使您的工作目录中的版本可用

一般来说,安装Python应用程序并不是一个好的选择。

假设您的标准安装是Python 2.6或更高版本,并且您不使用任何C扩展模块,则可以将其全部放在一个__main__.py文件中,包含一个__main__.py文件,然后将一个shell头文件放在__main__.py文件中。 您的情况正是为什么添加此功能。

有关如何设置的详细信息,请参阅http://bugs.python.org/issue1739468

你可以使用pyinstaller来创建一个独立的可执行文件
见:HTTP://www.pyinstaller.org/

你的应用程序的性质是什么? 这是一个简单的“插入一些价值观,得到一个答案”的东西? 还是更加交互/图形? 如果前者,你的应用程序可以打包成UtilityMill上的一个实用程序。 然后,您的用户可以通过标准浏览器访问您的应用程序。