-4

我的网络服务器不允许我安装额外的 Python 模块。有没有办法在其他地方的云服务器上执行 Python 脚本(允许插件)。因此,服务器 1 处理 Web 请求并调用服务器 2 上的 Python,将输出返回给服务器 1。

4

4 回答 4

2

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

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

于 2013-10-10T13:04:18.717 回答
1

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

它至少解决了两个问题:

无权限安装包

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

mkdir myvirtualenv && cd myvirtualenv && virtualenv --no-site-packages . && source bin/activate

该命令创建一个新目录,然后创建一个新的 virtualenv。这包含 bin include lib local,因此您可以为新文件设置标准目录。

该行source bin/activate更改了您的$PATH设置,因此它不是引用系统包,而是首先查看本地目录。

安装特定版本的包

许多项目需要特定版本的包。这可能与系统上另一个项目的要求相冲突。virtualenv救援:

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

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

包可以在这里找到

编辑

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

于 2013-10-10T13:15:33.383 回答
0

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

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

但是,一旦您成功了,为什么不将您的网络服务器移至云端,从而消除必须调用辅助服务器的开销。

于 2013-10-10T13:03:48.287 回答
0

I would personally try to become as independent on the system python as possible so as to be able to do do anything I want with/for my Python apps. The thing that allows you to achieve that anywhere without root access is Pythonz: https://github.com/saghul/pythonz

(Also there is https://github.com/yyuu/pyenv)

You can then use virtualenv on top of that, which is also recommended by the author of Pythonz.

You can also then just install your non-Python dependencies either directly into the Pythonz-managed Python prefix, or into the virtualenv prefix.

于 2013-10-10T13:09:50.787 回答