我必须将python应用程序部署到我无法控制的生产服务器(Ubuntu),也没有apt-get, pip, virtualenv,
等权限。目前,它的服务器正在运行python 2.6+。我需要安装pycrypto
作为应用程序的依赖项,但鉴于我的权限有限,我不知道如何做到这一点。唯一认为我有权做的就是wget
一个资源,并按照这些方式解压缩它。
首先,是否可以在不按上述方法安装的情况下使用它?如果没有,我可以下载该软件包然后放入pycrypto目录中的__init__.py
文件,以便python知道如何找到它:
/my_app
/pycrypto
/__init__.py
/pycrypto.py
答案 0 :(得分:4)
根据PEP370,从 python 2.6 开始,您可以拥有每用户的站点目录(请参阅What's new in Python 2.6?)。
因此,您可以使用--user
的{{1}}选项为每个用户而不是系统范围安装目录。我相信easy_install
也存在类似的选择。
这不需要任何权限,因为它只使用当前用户目录。
如果您没有安装任何安装程序,可以手动将软件包解压缩到:
pip
或者,如果你在Windows上,请进入:
~/.local/lib/python2.6/site-packages
对于%APPDATA%/Python/Python26/site-packages
,程序包在安装之前需要构建,因为它包含一些C代码。源应包含pycrypto
文件。您必须构建运行
setup.py
之后,您可以通过提供:
将其安装在用户目录中python setup.py build
请注意,构建阶段可能需要安装一些C库。
如果您不想这样做, only 选项是将库与您的应用程序一起发送。
顺便说一下:我相信python setup.py install --user
在执行系统范围的安装之前并没有真正检查你是否是root用户。它只是检查它是否可以在系统范围的站点目录中写入。因此,如果您确实有权限在那里写,那么首先不需要使用easy_install
。然而,这真的很奇怪......
答案 1 :(得分:0)
使用easy_install
。它应该已经安装在Ubuntu上用于python 2.6+。如果没有看看这些安装instructions。