我已经写了一个(很明显)优秀的Python(Linux下)工具,我想与我的同事分享。 我们在不同的机器上工作,但拥有相同的共享环境。 另外,我们是用户,所以没有办法轻松安装依赖关系。
现在这里有一个问题:我喜欢python,我的用户不关心。 他们确实可以访问公司范围的python安装(一个简单的),但他们不想关心(呃,这是可以理解的,不是每个人都是程序员)。
问题是:在这样的共享环境中,python解释器是可用的,但是我的应用程序中没有模块,那么与其他用户共享我的工具的最简单方法是什么?
正如你可能想象的,我的用户不想安装任何东西(特别是在用户空间中),configurationpath可能会在接受的边缘。 解决scheme不应该像一个冻结包装一切,这可能是一个矫枉过正的…
对于用户应该是:复制一个特定的tar.gz或去应用程序文件夹(共享),运行应用程序,完成。
所以也许模块应该以某种方式embedded到应用程序中? 或者我应该(在我的共享家中)托pipe库中的模块并设置一些path? 或者,也许一个virtualenv可以帮助,如果用户可以复制整个环境与path?
我希望你看到我的问题:D
谢谢!
对于“相同的共享环境”,您可以这样做:
安装your-script
到/your/shared/home/virtualenv
$ pip install your-app.tar.gz -E /your/shared/home/virtualenv
建立链接:
$ ln -s /your/shared/home/virtualenv/bin/your-script /shared/app/folder/
您的同事可以将脚本调用为/shared/app/folder/your-script
或将/shared/app/folder/
到PATH
。
/your/shared/home/virtualenv-old-version/bin/your-script
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上的一个实用程序。 然后,您的用户可以通过标准浏览器访问您的应用程序。