是否可以使用未安装到linux中的python目录中的python模块?

时间:2009-07-31 16:08:46

标签: python linux

我有一个依赖于uuid模块的python应用程序,但是在我需要运行它的服务器上,没有安装uuid。我在服务器上没有root,所以我不能将uuid .pys放在/usr/lib/python2.4/site-packages文件夹中......有没有办法可以从别处使用.py?喜欢我的〜?

5 个答案:

答案 0 :(得分:5)

有几种方法可以做到这一点。最快的是简单的命令:

export PYTHONPATH=path/to/module/directory

或者,您可以使用virtualenv。只需sudo apt-get install python-virtualenv(?)。这是一个非常常见的开发工具,用于使用您不一定要在本地Python安装中安装的模块。

答案 1 :(得分:1)

如果它是单个模块,我会考虑将它包含在我的项目路径中。如果它更复杂(如包,二进制文件等),我不想修改项目sys.path(例如,因为它是Django的来源,我不想搞砸更新)我安装某个地方的包然后我在项目目录中添加了.pth文件的路径(当前目录总是在Python路径上。)这样你就不必使用你的PYTHONPATH或项目sys.path了。 / p>

您可以在此处检查pth文件的格式:

http://bob.pythonmac.org/archives/2005/02/06/using-pth-files-for-python-development/

答案 2 :(得分:0)

是的,没有必要安装大多数Python模块。 uuid.py很简单,你根本不需要构建或安装它。只需download it,将其解压缩,然后将uuid.py文件放在您的代码目录中。 “import uuid”将起作用(当前工作目录位于Python路径中)。在您进行认真的应用程序部署管理之前,这个hack工作正常。

BTW,我相信uuid模块已经安装了Python 2.5及更高版本。

答案 3 :(得分:0)

Python通过sys.path变量查找要导入的模块。您可以在程序中更改此项以指向程序所需的新模块。默认情况下,这将包括程序自己的目录以及python系统目录,但您当然可以添加任何内容。

Link to the docs!

答案 4 :(得分:0)

为了在未来对此进行跟进,这在[PEP 370] [1]中得到了解决,一篇好的博客文章解释了它在这里如何运作[http://jessenoller.com/2009/07/19/pep-370-per-user-site-packages-and-environment-stew/][2]

要安装软件包,您还可以查看[virtualenv] [3]和[pip] [4],它们为您提供了一个清洁环境的终极方式。