4

我有一个简单的 python shell 脚本(没有 gui),它使用了几个依赖项(请求和 BeautifulfSoup4)。

我想在多台计算机上共享这个简单的脚本。每台计算机都已经安装了 python,并且它们都是 Linux 驱动的。

此时,在我的开发环境中,应用程序在一个包含所有依赖项的 virtualenv 中运行。

有什么方法可以与所有依赖项共享此应用程序,而无需使用 pip 安装它们?我想跑python myapp.py就跑。

4

3 回答 3

1

您将需要使用bbfreezepyinstaller 之类的东西创建一个单文件可执行文件,或者将您的依赖项(假设它们是纯 python)捆绑到一个.zip文件中,然后将其作为您的 PYTHONPATH(例如:)PYTHONPATH=deps.zip python myapp.py

更好的解决方案是创建一个setup.py文件并使用 pip。如果您不希望这些机器访问外部世界,您的 setup.py 文件可以创建文件或 repos 的依赖链接。请参阅此相关问题

于 2013-11-11T16:27:57.857 回答
0

只要您使 virtualenv 可重定位(--relocatable在其原始位置使用选项),您就可以直接复制整个 virtualenv。如果你创建它--copy-only(你需要修补 virtualenv 中的错误),那么你甚至不需要在目标机器的其他地方安装 python。

或者,查看http://guide.python-distribute.org/并学习如何创建鸡蛋或轮子。然后可以通过python直接运行一个鸡蛋。

于 2013-11-11T16:29:48.943 回答
-1

我没有测试你的特殊情况,但你可以在 github 之类的网站上找到源代码(镜像或原始)。

例如,对于 BeautifulSoup,您可以在此处找到代码。

您可以将代码放入同一个文件夹(可能重命名是个好主意,以免调用现有包)。请注意,您不会收到任何更新。

于 2013-11-11T16:29:49.457 回答