Php 使用相同库的多个文件的python导入技术
好的,我有一个问题,我想知道什么是等同于将许多文件包含到一个php文件中的Php 使用相同库的多个文件的python导入技术,php,python,file-io,import,include,Php,Python,File Io,Import,Include,好的,我有一个问题,我想知道什么是等同于将许多文件包含到一个php文件中的(假设这个文件名为init.php)。例如,init.php读取目录X,并包含每个文件*.php。由init.php导入的这些文件中包含的任何文件现在都将在脚本(或系统)中共享 在类似的示例中,但这次使用的是python,我有一个名为init.py的文件,它读取目录Y,并使用诸如import numpy as np、os、,sys将包含在目录Y中的文件中,或者这些文件中的每个文件都需要此导入行吗?要访问操作系统和系统?py
(假设这个文件名为init.php
)。例如,init.php
读取目录X
,并包含每个文件*.php
。由init.php
导入的这些文件中包含的任何文件现在都将在脚本(或系统)中共享
在类似的示例中,但这次使用的是python
,我有一个名为init.py
的文件,它读取目录Y
,并使用诸如import numpy as np、os、,sys
将包含在目录Y
中的文件中,或者这些文件中的每个文件都需要此导入
行吗?要访问操作系统
和系统
?python示例与php示例具有相同或不同的含义吗?为什么?如果导入文件,Python将执行两个不同的步骤:
打开导入的模块文件并执行它,包括模块中的任何import
语句
使导入的模块在当前模块的命名空间中可用
请注意,如果导入模块foo
,则您将无法访问命名空间中由foo
导入的模块-您需要直接导入它们(或通过foo.module
访问它们,但通常您希望在模块中导入它们)
简而言之,每个想要使用modulefoo
的文件都需要导入它,即使同一应用程序中的其他文件也使用它
如果您来自另一种语言,可能会感到困惑的一点是Python实际上只执行一次给定的模块(除非您调用reload()
),即使它在许多地方被导入。这就是为什么我将import
的操作分为上面的两部分-第一部分只对每个导入的模块执行一次,但第二部分总是发生
因此,如果您执行本身执行import bar
的import foo
,则foo
和bar
都已加载并执行一次。您的模块可以访问foo
,但不能访问bar
,因为您尚未导入它(同样,您可以将其用作foo.bar
,但这通常不是很好的做法)。如果现在运行import bar
,那么模块中将有bar
可用,但由于该模块已经导入一次,Python将不会再次加载和执行该模块
如果需要更多详细信息,模块工作方式的详细信息将在中详细记录
这回答了你的问题吗
额外细节
通常,您不需要在运行时通过扫描目录来加载模块,但在某些情况下这是有用的(例如,实现插件)。如果您只想在安装所基于的固定模块列表中进行选择,则只需执行标准的导入
,捕获导入错误
,然后通过尝试列表中的下一个来处理它
如果在运行时才知道模块名称时确实需要加载模块,则可以使用。Python标准库还提供了,例如,它具有按文件名定位和导入模块的函数
听起来您已经有了解决方案,但有时了解其他可用的模块是很有用的(这些模块都是标准库的一部分,所以总是安装的)。是的!谢谢:),将在计时器过期后选择。再次感谢!