小编Jor*_*zen的帖子

从调用导入的 python 文件中获取名称

我在互联网上搜索过,但到目前为止我找不到答案。

我有一个库,它被导入到所有其他文件中。假设该库是import my_lib 在使用它的文件中导入的。

在 mylib 中,我想做类似的事情__imported_from__,以便代码知道导入来自哪里。我需要这个用于记录目的(不同的调用不同的日志文件/日志名)

这将是目前的日志:

2018-09-13 01:36:00,921 - my_lib - INFO - Start Processing
2018-09-13 01:36:30,921 - my_lib - INFO - Done Processing
2018-09-13 01:37:00,921 - my_lib - INFO - Start Processing
2018-09-13 01:37:30,921 - my_lib - INFO - Done Processing
Run Code Online (Sandbox Code Playgroud)

我希望 my_lib 包含导入文件中的名称,以便可以在我的日志记录中查看调用的来源。就像下面的例子一样

2018-09-13 01:36:00,921 - import_from_file_1 - INFO - Start Processing
2018-09-13 01:36:30,921 - import_from_file_1 - INFO - Done Processing
2018-09-13 01:37:00,921 - import_from_file_2 - INFO - Start Processing
2018-09-13 01:37:30,921 - …
Run Code Online (Sandbox Code Playgroud)

python python-import python-2.7

5
推荐指数
1
解决办法
1895
查看次数

ImportError与from。在简单的python文件上导入x

我想将一些代码从python 2移植到python 3,并且在导入错误时失败。因此,我尝试通过创建2个要测试的基本python文件来摆脱自身的移植并专注于导入。但是,我什至无法使它们工作。

所以我有2个档案

test.py:

print('Test works')
Run Code Online (Sandbox Code Playgroud)

和test2.py:

from . import test
Run Code Online (Sandbox Code Playgroud)

但是,结果是Pycharm中的此错误:

ImportError:无法从“ __main__”导入名称“ test”(C:/Users/Username/test2.py)

在Ubuntu Shell中:

Traceback (most recent call last): File "test2.py", line 1, in from . import test1 SystemError: Parent module '' not loaded, cannot perform relative import

How can I solve it?

python-import importerror python-3.x

5
推荐指数
2
解决办法
2553
查看次数