【问题标题】:Class Modules in Far-Off Places遥远地方的班级模块
【发布时间】:2015-10-10 10:14:19
【问题描述】:

类模块必须在工作目录中才能被导入python程序。但是,我想根据使用情况将我的各个主程序保存在单独的目录中,而不是将所有程序和所有类都塞进一个巨大的目录中。

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

【问题讨论】:

  • 我认为 Python 模块不需要位于工作目录中。它们只需要位于 PYTHONPATH 环境变量中列出的某个位置。不,它们不能直接在 Internet 上的某个地方 - 这意味着您需要访问 Internet 才能运行您的程序。
  • 每次启动新的终端会话时,我是否必须将该路径设置为 BASH 脚本?顺便说一句,我不关心需要互联网访问,因为我的程序无论如何都需要它运行。
  • 您可以在任何设置环境变量的地方设置它 - ~/.profile、/etc/profile、大约十几个其他地方...或者您可以将模块安装到已经存在的位置之一默认的 PYTHONPATH,如 /usr/local/lib,根本不必更改变量。通过在 Python 解释器中执行 print sys.path,您可以在任何地方看到搜索 Python 模块的位置。
  • 我将我的模块添加到 /usr/lib/python3.3 并且它现在似乎可以工作了。谢谢。您为什么不将您的回复作为答案发布,以便我可以投票?

标签: python git python-3.x github python-module


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多