Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在linux中为共享的公司环境部署一个简单的python应用程序?_Python_Linux_Deployment - Fatal编程技术网

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

如何在linux中为共享的公司环境部署一个简单的python应用程序?,python,linux,deployment,Python,Linux,Deployment,我已经用python(在linux下)编写了一个(显然)优秀的工具,我想与我的同事分享。我们在不同的机器上工作,但使用相同的共享环境。此外,我们是用户,因此无法轻松安装依赖项 现在有个问题: 我喜欢python,我的用户不在乎。他们确实可以访问公司范围内的python安装(一个简单的安装),但他们不想在意(这是可以理解的,不是每个人都是程序员) 问题是: 在这样的共享环境中,python解释器可用,但我的应用程序的模块不可用,那么与其他用户共享我的工具的最简单方式是什么 正如您所想象的,我的用户

我已经用python(在linux下)编写了一个(显然)优秀的工具,我想与我的同事分享。我们在不同的机器上工作,但使用相同的共享环境。此外,我们是用户,因此无法轻松安装依赖项

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

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

正如您所想象的,我的用户不想安装任何东西(特别是在用户空间中),配置path可能会被接受。 解决方案不应该像冷冻一样包装所有东西,这可能是一种过度杀伤力

对于用户来说,应该是:复制某个tar.gz或转到应用程序文件夹(共享),运行应用程序,完成

那么,也许模块应该以某种方式嵌入到应用程序中? 或者我应该(在共享的家中)在库中托管模块并设置一些路径? 或者,如果用户可以用路径复制整个env,virtualenv可能会有所帮助

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


谢谢

您的应用程序的性质是什么?这是一个简单的“插入一些值,得到一个答案”之类的事情吗?还是更具互动性/图形化?如果是前者,您的应用程序可以打包为上的实用程序。然后您的用户可以通过标准浏览器访问您的应用程序。

您可以使用pyinstaller创建独立的可执行文件

见:http://www.pyinstaller.org/假设您的标准安装是Python2.6或更高版本,并且不使用任何C扩展模块,您可以将其全部放入zipfile中,包括一个
\uuuuuu main\uuuuuuuuy.py
文件,然后在zipfile前添加一个shell头。您的场景正是添加此功能的原因

有关如何设置的更多详细信息,请参阅。

有关“相同的共享环境”,您可以执行以下操作:

  • 脚本安装到
    /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/
    添加到
    路径

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

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

    在这种情况下,共享环境意味着什么?是否安装了setuptools或Distribute?否,既不安装setuptools也不安装Distribute…共享环境意味着用户在同一基础结构上工作,具有(基于网络的)具有unix权限的项目目录,然而,在标准unix中,每个用户都有一个单独的“用户”环境,因此必须自己设置它。这里的意思是用户可以使用系统范围的python,但需要做额外的工作来配置它以满足他们的需要。@ronszon:“用户在相同的基础设施上工作”。为什么不能更新这个公共基础结构?这就是为什么它很普遍。是什么阻止了你简单地更新普通的东西呢?好吧,这当然会起作用,但这是我想要避免的过度部署类型。因为环境是“共享的”(python解释器对每个人都可用),我不认为有必要将它再次嵌入包中……这将非常酷(我已经在考虑为我的应用程序制作一个web界面,这绝对是最容易使用的),但我是否纠正了这一点,在他们的服务器上工作?那么这是不可能的,它必须在内部网上工作。。。该应用程序也很简单,基本上以excel文件作为输入,并在此基础上解析和创建其他语言脚本。但这意味着有可能上传一个excel文件…是的,这可能就是它!我认为应该有一种VirtualNV方式,但不能真正将其转化为代码(在python中仍然很新鲜)。周末后我会试一试。事实上,与冻结的替代方案相比,这种方法可以让代码保持活力……按照你的建议,工作起来很神奇。事实上,我没有想象到virtualenv的力量。谢谢