如何在Linux上使我的Python模块在系统上可用?

时间:2013-06-21 13:37:00

标签: python linux module installation

我为自己做了一个小模块,我碰巧使用了很多。每当我需要它时,我只需将其复制到我想要使用它的文件夹中。由于我很懒,我想安装它,以便我可以从任何地方调用它,甚至是交互式提示。所以我在这里阅读了一些关于安装的内容,并得出结论我需要将文件复制到/usr/local/lib/python2.7/site-packages。然而,这似乎没有做任何事情。

有人知道我需要将模块复制到系统范围内吗?

6 个答案:

答案 0 :(得分:9)

有一些方法可以在系统范围内安装Python模块。您可能需要查看distutils。可以找到distutils2(当前版本)的好教程here

你基本上必须写一个文件setup.py来告诉distutils该怎么做。那么你可以简单地

python setup.py install

使用root权限在系统范围内安装模块。有好的和简单的例子,加上它是我能想象的最干净的方式。

答案 1 :(得分:3)

答案是:这完全取决于权限

仅将文件放在正确的位置是不够的,例如: /usr/local/lib/python2.7/dist-packages ,您还需要确保该文件可以通过正在运行的进程读取,在本例中为python。

确保“其他”用户具有该文件的读取权限。 打开bash控制台并执行:

sudo chmod o+r "yourmodule.py"
[Introduce the password]

在此之后再次访问python并尝试导入:

import "yourmodule"

只要.py文件所在的路径存在于PYTHONPATH +中,该文件是可读的,那么您应该被允许导入它。

答案 2 :(得分:1)

如果您使用的是Ubuntu,请将文件复制到/usr/local/lib/python2.7/dist-packages。 以下命令将显示复制位置。

python -c "from distutils.sysconfig import *; print(get_python_lib())"

如果您是唯一使用该模块的人,请将文件复制到~/.local/lib/python2.7/site-packages

答案 3 :(得分:1)

在Python提示符下键入sys.path时列出的其中一个目录中。您还可以通过修改PYTHONPATH环境变量来添加包含文件的目录:

# ~/.bashrc file
export PYTHONPATH+=:/some/dir

答案 4 :(得分:0)

一些事情。

首先,模块必须(我相信)位于与模块名称匹配的目录中。

将该模块目录放在PYTHONPATH中的一个目录下(我使用/usr/lib/pymodules/pythonV.x/)。您可以使用

在路径中找到合适的目录
import sys
print(sys.path)

来自python提示符。

答案 5 :(得分:0)

您还可以拥有一个包含所有全局模块的文件夹,例如my_modules/然后本地化您正在使用的Python版本的site-packages/文件夹(您可以使用以下命令轻松找到它:python -m site)。现在,cd到此文件夹,并创建一个扩展名为.pth的自定义文件。在此文件中,将绝对路径添加到包含要在系统范围内可用的所有模块的文件夹中并保存它。您的模块现在应该可用了