2015-07-21 17 views
0

类模块必须位于工作目录中才能导入到python程序。但是,我想根据使用情况将我的各个主要程序保存在不同的目录中,而不是将所有程序和所有类都卡入到一个巨大的目录中。远程位置的类模块

我可以在我的脚本中添加什么来指向正确的模块目录?更好的是:我可以在GitHub等repo上创建我的模块目录并从那里导入?

+0

我不认为Python模块需要在工作目录中。他们只需要在您的PYTHONPATH环境变量中列出的某个位置。不,他们不能直接在互联网上 - 这意味着你需要访问互联网来运行你的程序。 – Borealid

+0

每次我开始新的终端会话时,是否必须将该路径设置为BASH脚本?顺便说一句,我不关心需要上网,因为我的程序需要它运行。 –

+0

您可以在任何设置环境变量的地方设置环境变量 - 〜/ .profile,/ etc/profile,还有其他十几个地方......或者您可以将模块安装到默认PYTHONPATH中的某个位置,如/ usr/local/lib,而不必根本改变变量。通过在Python解释器中执行'print sys.path',您可以在任何地方看到搜索Python模块的地方。 – Borealid

回答

1

Python模块需要在Python的搜索路径中的某处。这恰好包括工作目录。

有很多地方来存储一个的模块,可能是最简单的就是

/usr/local/lib/pythonx.y/site-packages 

/usr/local/lib/pythonx.y/dist-packages 

(哪一个是你的系统上)。

一旦在那里,你应该为你的东西的目录,创建一个空__init__.py文件在该目录中,那么你的模块复制到它:

sudo mkdir MyStuff 
sudo touch MyStuff/__init__.py 
sudo cp /home/me/my_module1.py MyStuff/ 
sudo cp /home/me/my_module2.py MyStuff/ 

,然后在你的脚本可以

from MyStuff import my_module1