从目录中导入 python 中的用户定义模块
Importing user defined modules in python from a directory
我正在尝试导入我在 python 中编写的模块,该模块仅打印出包含数字的列表。我遇到的问题是我希望能够从单独的目录导入它,但到目前为止我读到的答案似乎并不适合我的情况。
例如,如果我想从我的文档文件夹中的目录导入 printnumbers.py,我应该执行以下操作:
import sys
sys.path.append('/home/jake/Documents')
import printnumbers.py
这段代码导致 "Import error" 告诉我指定的模块不存在。我不确定从哪里开始,我检查了多次以确保路径和模块名称的拼写正确。我仍在尝试准确理解附加到 "sys.path" 的作用。据我了解,它告诉程序在该目录中搜索模块?
感谢所有回答我相当新手问题的人。我只是想更好地理解 python 文档没有提供我的思路。
当文件为 printnumbers.py
时,模块被称为 printnumbers
(没有 .py
)。因此使用
import printnumbers
import sys
sys.path.append('/home/jake/Documents')
将 '/home/jake/Documents'
附加到 sys.path
的末尾。每当 import 语句导致 Python 搜索模块时,都会搜索 sys.path
中列出的目录(按列出的顺序)。 (已经导入的模块缓存在 sys.modules
中,因此 Python 并不总是需要搜索 sys.path
目录来导入模块...)
因此,如果您有一个文件 /home/jake/Documents/printnumbers.py
,那么 import printnumbers
将导致 Python 导入它,前提是在中列出的目录中没有其他名为 printnumbers.py
的文件sys.path
领先于 /home/jake/Documents/
。
请注意,将目录注入 sys.path
并不是设置 Python 搜索模块的常用方法。通常最好将 /home/jake/Documents
添加到 PYTHONPATH 环境变量中。 sys.path
将自动包含 PYTHONPATH 环境变量中列出的目录。
and one more thing, use an empty __ init __.py file in you directory
to make it as a python package (only then Python will know that this
directory is a Python package directory other than an ordinary
directory). Thus you can import modules from that package from
different directory.
我正在尝试导入我在 python 中编写的模块,该模块仅打印出包含数字的列表。我遇到的问题是我希望能够从单独的目录导入它,但到目前为止我读到的答案似乎并不适合我的情况。
例如,如果我想从我的文档文件夹中的目录导入 printnumbers.py,我应该执行以下操作:
import sys
sys.path.append('/home/jake/Documents')
import printnumbers.py
这段代码导致 "Import error" 告诉我指定的模块不存在。我不确定从哪里开始,我检查了多次以确保路径和模块名称的拼写正确。我仍在尝试准确理解附加到 "sys.path" 的作用。据我了解,它告诉程序在该目录中搜索模块?
感谢所有回答我相当新手问题的人。我只是想更好地理解 python 文档没有提供我的思路。
当文件为 printnumbers.py
时,模块被称为 printnumbers
(没有 .py
)。因此使用
import printnumbers
import sys
sys.path.append('/home/jake/Documents')
将 '/home/jake/Documents'
附加到 sys.path
的末尾。每当 import 语句导致 Python 搜索模块时,都会搜索 sys.path
中列出的目录(按列出的顺序)。 (已经导入的模块缓存在 sys.modules
中,因此 Python 并不总是需要搜索 sys.path
目录来导入模块...)
因此,如果您有一个文件 /home/jake/Documents/printnumbers.py
,那么 import printnumbers
将导致 Python 导入它,前提是在中列出的目录中没有其他名为 printnumbers.py
的文件sys.path
领先于 /home/jake/Documents/
。
请注意,将目录注入 sys.path
并不是设置 Python 搜索模块的常用方法。通常最好将 /home/jake/Documents
添加到 PYTHONPATH 环境变量中。 sys.path
将自动包含 PYTHONPATH 环境变量中列出的目录。
and one more thing, use an empty __ init __.py file in you directory to make it as a python package (only then Python will know that this directory is a Python package directory other than an ordinary directory). Thus you can import modules from that package from different directory.