附加用户定义的模块以进行自动搜索
Appending user-defined modules for automatic searching
我在 site-packages
目录中创建了 Windows 我自己的目录,并放置了一些 Python 文件。
我可以导入它们只命名模块,还是我需要做一些额外的操作才能使目录和模块可见?
是的,如果它们在 site-packages
目录中,您应该可以导入它们。话虽这么说:文档说明这是“按照惯例”并且依赖于安装;这似乎暗示在特定安装中情况可能并非如此,我想?
更广泛地说,如果它们在 sys.path
中的任何目录中,您应该能够导入它们,并且 site-packages
目录通常(按照惯例等)是其中的一部分默认值,如前所述。您还可以通过修改 PYTHONPATH 环境变量“永久”添加自定义目录。
根据 OP 的澄清进行编辑:
如果您在 site-packages
中有一个目录 a
,并且在该目录中您有模块 b
,那么导入它的语法将是 import a.b
,或 from a.b import *
.
为了启用 import b
/from b import *
语法,您需要将该文件放在 sys.path
中任何目录的基目录中。因此,例如,将模块 b
直接放在 site-packages
中,而不是放在 a
目录中;或者通过将 b
中的任何目录(例如 a
)添加到您的 sys.path
中。这可以通过在脚本本身中动态修改 sys.path
来实现,或者通过修改 PYTHONPATH 环境变量以包含该目录来“永久地”实现,如上所述。
我在 site-packages
目录中创建了 Windows 我自己的目录,并放置了一些 Python 文件。
我可以导入它们只命名模块,还是我需要做一些额外的操作才能使目录和模块可见?
是的,如果它们在 site-packages
目录中,您应该可以导入它们。话虽这么说:文档说明这是“按照惯例”并且依赖于安装;这似乎暗示在特定安装中情况可能并非如此,我想?
更广泛地说,如果它们在 sys.path
中的任何目录中,您应该能够导入它们,并且 site-packages
目录通常(按照惯例等)是其中的一部分默认值,如前所述。您还可以通过修改 PYTHONPATH 环境变量“永久”添加自定义目录。
根据 OP 的澄清进行编辑:
如果您在 site-packages
中有一个目录 a
,并且在该目录中您有模块 b
,那么导入它的语法将是 import a.b
,或 from a.b import *
.
为了启用 import b
/from b import *
语法,您需要将该文件放在 sys.path
中任何目录的基目录中。因此,例如,将模块 b
直接放在 site-packages
中,而不是放在 a
目录中;或者通过将 b
中的任何目录(例如 a
)添加到您的 sys.path
中。这可以通过在脚本本身中动态修改 sys.path
来实现,或者通过修改 PYTHONPATH 环境变量以包含该目录来“永久地”实现,如上所述。