首页 > Python > 如何在给定完整路径的情况下动态导入模块?

如何在给定完整路径的情况下动态导入模块?

上一篇 下一篇

如何在给定完整路径的情况下加载 Python 模块?

请注意,该文件可以位于文件系统中用户具有访问权限的任何位置。


另请参阅:如何导入名称为字符串的模块?

分割线

网友回答:

向 sys.path 添加路径(相对于使用 imp)的优点是,当从单个包导入多个模块时,它可以简化事情。例如:

import sys
# the mock-0.3.1 dir contains testcase.py, testutils.py & mock.py
sys.path.append('/foo/bar/mock-0.3.1')

from testcase import TestCase
from testutils import RunTests
from mock import Mock, sentinel, patch

分割线

网友回答:

对于 Python 3.5+ 使用(文档):

import importlib.util
import sys
spec = importlib.util.spec_from_file_location("module.name", "/path/to/file.py")
foo = importlib.util.module_from_spec(spec)
sys.modules["module.name"] = foo
spec.loader.exec_module(foo)
foo.MyClass()

对于 Python 3.3 和 3.4,请使用:

from importlib.machinery import SourceFileLoader

foo = SourceFileLoader("module.name", "/path/to/file.py").load_module()
foo.MyClass()

(尽管这在Python 3.4中已被弃用。

对于 Python 2,请使用:

import imp

foo = imp.load_source('module.name', '/path/to/file.py')
foo.MyClass()

编译的 Python 文件和 DLL 有等效的便利函数。

另请参阅 http://bugs.python.org/issue21436。

分割线

网友回答:

要导入模块,您需要将其目录临时或永久添加到环境变量中。

暂时

import sys
sys.path.append("/path/to/my/modules/")
import my_module

永久

在 Linux
中将以下行添加到您的(或替代)文件中,并在终端中执行(或替代):
.bashrcsource ~/.bashrc

export PYTHONPATH="${PYTHONPATH}:/path/to/my/modules/"

信用/来源:saarrrr,另一个堆栈交换问题

模板简介:该模板名称为【如何在给定完整路径的情况下动态导入模块?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Python】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 302次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 02-24
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
单页式简历模板 微信模板 微信素材 自适应 html5 微信文章 微信图片 微信公众平台 企业网站 响应式
您可能会喜欢的其他模板