在云中执行Python

在云中执行Python,python,Python,我的web服务器不允许我安装其他Python模块。是否有一种方法可以在其他地方的云服务器上执行Python脚本(它允许加载项)。因此,服务器1处理web请求并在服务器2上调用Python,从而将输出返回到服务器1。这是一种处理简单Python web服务器的扭曲方式。 最简单的方法是创建VPS,任何云提供商都可以这样做。 (例如,在amazon上创建一个小实例) 从那里,您将拥有一个完整的Linux发行版,您可以使用任何模块、插件和脚本安装任何版本的python 但是,一旦您成功地做到了这一点,

我的web服务器不允许我安装其他Python模块。是否有一种方法可以在其他地方的云服务器上执行Python脚本(它允许加载项)。因此,服务器1处理web请求并在服务器2上调用Python,从而将输出返回到服务器1。

这是一种处理简单Python web服务器的扭曲方式。 最简单的方法是创建VPS,任何云提供商都可以这样做。 (例如,在amazon上创建一个小实例)

从那里,您将拥有一个完整的Linux发行版,您可以使用任何模块、插件和脚本安装任何版本的python


但是,一旦您成功地做到了这一点,为什么不将您的Web服务器移动到云端,以消除调用辅助服务器的开销。

将python模块的内容提取到某个相对文件夹并以这种方式导入,可能会更容易些。当然,您可能会丢失一大堆模块/包管理的良好属性,但至少您可以让您的东西正常工作


请注意,这种方法非常适合在一开始就让它快速工作。之后,您可能希望通过使用适当的包管理实用程序(如ldrumm的回答中所述)来获得一个更健壮/解耦的解决方案。

我个人会尽可能独立于系统python,以便能够对我的python应用程序做任何我想做的事情。Pythonz允许您在任何地方实现无根访问:

(还有)

然后你可以在上面使用
virtualenv
,这也是Pythonz的作者推荐的


然后,您还可以直接将非Python依赖项安装到Pythonz托管的Python前缀中,或者安装到
virtualenv
前缀中。

virtualenv
是您想要的软件包,对于任何Python开发人员都是必不可少的

它至少解决了两个问题:

无权限安装软件包

virtualenv
允许您在给定目录中创建自己的本地安装包,这意味着您可以在没有root权限的情况下安装包

mkdir myvirtualenv && cd myvirtualenv && virtualenv --no-site-packages . && source bin/activate
该命令创建一个新目录,然后创建一个新的virtualenv。它包含bin
include
local
,因此您可以为新文件设置一个标准目录

source bin/activate
更改您的
$PATH
设置,以便它首先查看本地目录,而不是引用系统包

安装特定版本的软件包

许多项目需要特定版本的软件包。这可能与系统上另一个项目的要求冲突<代码>虚拟电视救援:

source bin/activate&&pip install foo==1.2.3

virtualenv
几乎总是与
pip
齐头并进,它允许您将任何版本的软件包安装到活动的
virtualenv
中。然后,多个项目可以与不同的版本/包需求共存

编辑


从链接页面下载包并提取其内容后(使用
tar-xzf virtualenv-1.10.1.tar.gz
),您可以从提取包的根目录运行
python virtualenv.py

您尝试过
virtualenv
?你可以在virtualenv中安装任何你喜欢的东西…是安装virtualenv,还是我必须安装它?我不知道。试着在shell上键入
哪个virtualenv
,看看它是怎么说的。virtualenv有点像一个附加模块,如果你能安装它,就意味着你可以安装其他模块。如果它是预安装的,那么您就有了您的解决方案!你是在谷歌应用程序引擎上运行的吗?就像这个想法一样,但并非所有的python模块都能以这种方式轻松集成。有些需要额外的系统依赖性,有些则不是开源的……是的,但如果它在这种特殊情况下对模块运行良好,那么它就是一个可能的解决方案。这就是为什么我投票给它:p-1。这不是一个解决办法。您是否尝试过维护这样的解决方案?当您需要更新包时会发生什么情况?实际上,这是一个解决方案。是的,我试着维持这样的解决方案。您是否考虑过,Dirk可能拥有一个特权不足的帐户,并且可能无法访问virtualenv,在这种情况下,建议将其作为解决方案会产生一个鸡蛋问题。如果您经常更新第三方库/依赖项,那么无论如何,您都是做错了。考虑到它将主要位于源代码树的一个单独部分,您甚至可能不需要更改任何内容来使其工作;你的否决票是愤怒的过度反应。我喜欢这里的答案,只是忽略了主要的限制。还有,呃,他是如何安装这个软件包的…@PreetKukreti复仇?几乎没有。这在逻辑上是合理的。建议他移动主机或创建VPS或获取根帐户类似于对优化问题的“获取更好的硬件”。@PreetKukreti是真的,但我不知道OP安装了哪些软件包,所以我提供了一个潜在的长期解决方案,而不是一个丑陋的黑客,将导致大量的挫折与包的依赖性。很明显,任何对Python开发的长期兴趣都将取决于安装了
virtualenv
。他可以安装该软件包并从链接的pypi页面运行
python virtualenv.py
。你提出了一个很好的观点;我忽略了这一部分。我会适当地编辑我的答案。“嵌入”第三方库/头/模块等作为实际项目源代码树的一部分在现实世界中并不少见,因为很多代码依赖于库的API,随着时间的推移,甚至是特定版本的bug。在大型项目中,由于项目代码和第三方LIB是