当前位置: 首页 > 面试题库 >

从哪里导入模块?

越安翔
2023-03-14
问题内容

假设我有两个Python模块,并且path_b在导入路径中:

# file: path_b/my_module.py
print "I was imported from ???"

#file: path_a/app.py
import my_module

是否可以查看从哪里导入模块?如果我启动app.py(因为我需要文件名),我想要一个类似“我是从path_a / app.py导入的”的输出。

编辑: 为了更好的理解;我可以写:

# file: path_b/my_module.py
def foo(file):
    print "I was imported from %s" % file

#file: path_a/app.py
import my_module
my_module.foo(__file__)

因此输出为:

$> python path_app.py
I was imported from path_a/app.py

问题答案:

可能有一种更简单的方法可以执行此操作,但这可以起作用:

import inspect

print inspect.getframeinfo(inspect.getouterframes(inspect.currentframe())[1][0])[0]

请注意,如果该路径是脚本位置的父目录,则将相对于当前工作目录进行打印。



 类似资料:
  • 问题内容: 我应该使用 要么 当 导入模块 ,并和有 改变名字没有必要/愿望 ()? 有什么区别吗?有关系吗? 问题答案: 假设是中的模块或包,没有区别*,那就没关系。这两个语句具有完全相同的结果: 如果不是模块或软件包,则第二种形式将不起作用;引发回溯: *在Python 3.6及更高版本中,包含其他模块的软件包的初始化顺序存在一个错误,即在软件包 的加载阶段,在子模块中使用 该软件包 会失败,

  • 问题内容: 我已尝试找到有关最佳使用还是全面的指南。我刚开始使用Python,并且正在尝试着眼于最佳实践。 基本上,我希望有人能分享他们的经验,其他开发人员有什么喜好,以及避免遇到麻烦的最佳方法是什么? 问题答案: 和之间的区别主要是主观的。选择最喜欢的一个,并在使用中保持一致。这里有一些要点可以帮助你做出决定。 优点: - 减少维护你的import报表。无需添加任何其他导入即可开始使用模块中的另

  • 本文向大家介绍TypeScript 从npm导入模块,包括了TypeScript 从npm导入模块的使用技巧和注意事项,需要的朋友参考一下 示例 如果模块具有类型定义文件(d.ts),则可以使用import语句。 如果您没有模块的定义文件,TypeScript将在编译时抛出错误,因为它找不到您要导入的模块。 在这种情况下,可以使用正常的运行时require功能导入模块。但是,这将其返回为any类型

  • 问题内容: 有没有办法让python从网络读取模块? 我们有很多机器,每次更换模块时都要手动更新每台机器,这太费力了,因此我希望python从网络上的某个位置获取模块。 有任何想法吗? 问题答案: 将网络位置挂载到文件系统中,然后将该路径添加到PYTHONPATH。这样,本地计算机上的Python将能够查看远程位置中存在的模块。您 不能 直接从模块直接远程导入,例如在html中指定js文件。

  • 模块“Transformer”解析为非模块实体,不能使用此构造导入。 如何导入类?其实我只是想利用那堂课。我不希望指令在我的代码中产生附带效应。我只想用它:'(

  • 我有一个这样的目录: 我可以这样导入父模块: 那么,既然我已经有了父模块,那么获取子模块的最佳方法是什么?我已经尝试了,,等。 有什么建议吗? 谢谢