[英]how to import newly installed python module in launched interactive session?
[英]In interactive Python, how to unambiguously import a module
在交互式python中,我想导入一个模块,例如
C:\\模块\\模块1 \\ module.py
我已经能够做的是创建一个空白
C:\Modules\Module1\__init__.py
然后执行:
>>> import sys
>>> sys.path.append(r'C:\Modules\Module1')
>>> import module
那行得通,但是我必须附加到sys.path,并且如果sys.path中也有另一个名为module.py的文件,那么如何明确地解析为我真正想要导入的文件?
还有另一种不涉及附加到sys.path的导入方法吗?
编辑 :这是我忘记的事情: 这是导入驻留在任意文件夹中的python脚本的正确方法吗? 我将其余答案留在此处以供参考。
有,但是您基本上会编写自己的导入器,该导入器手动创建一个新的模块对象,并使用execfile
在该对象的“命名空间”中运行模块的代码。 如果要这样做,请查看mod_python导入器作为示例。
对于一个更简单的解决方案,您可以将要导入的文件的目录添加到sys.path
的开头 ,而不是结尾,如下所示:
>>> import sys
>>> sys.path.insert(0, r'C:\Modules\Module1')
>>> import module
您不需要创建__init__.py
文件,除非您是从程序包中导入的(因此,如果您正在执行import package.module
则需要__init__.py
)。
插入 sys.path
(最开始)效果更好:
>>> import sys
>>> sys.path.insert(0, 'C:/Modules/Module1')
>>> import module
>>> del sys.path[0] # if you don't want that directory in the path
append
到列表会将项目放在最后 ,因此路径中的其他先前条目很可能具有优先权; 因此把目录中的第一个地方是发声方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.