如何只获取模块名称 ModuleNotFoundError
How to get only the module name ModuleNotFoundError
如何在 Python.
中仅打印带有 ModuleNotFoundError 参数的模块名称
我的代码:
try:
import requests
except ModuleNotFoundError as error1:
print(error1)
在这种情况下,我得到如下输出:
>> No module named *'requests'*
我只想打印遇到异常的模块的名称。
我需要的输出:
>> 'requests'
由于您已经知道要导入的模块的名称,因此您可以直接编写它
try:
import requests
except ImportError as ex:
sys.exit(f"unable to import requests: {repr(ex)} .. you can install it with 'pip install requests')
但是,请注意,这可能是某种形式的 XY Problem!
即。为什么未安装请求? (也许您应该捆绑一个 pip_requirements.txt
文件或创建一个 setup.py
)
Packaging Python Projects Docs
您可以操作字符串来提取模块名称。您可以看到模块名称位于两个单引号之间。知道了这一点,我们就可以用str.index找到这两个索引,提取它们之间的所有数据,得到模块名。
try:
import blahblahdoesntexist
except ModuleNotFoundError as err1:
error = str(err1) # turns it into a string
first = error.index("'")
last = error.index("'", first + 1)
print(error[first + 1:last]) # gets the name only.
ModuleNotFoundError
中的模块名称由变量 name
访问
try:
import this_module_doesnt_exist
except ModuleNotFoundError as error1:
print(error1.name)
输出:
this_module_doesnt_exist
如何在 Python.
中仅打印带有 ModuleNotFoundError 参数的模块名称我的代码:
try:
import requests
except ModuleNotFoundError as error1:
print(error1)
在这种情况下,我得到如下输出:
>> No module named *'requests'*
我只想打印遇到异常的模块的名称。
我需要的输出:
>> 'requests'
由于您已经知道要导入的模块的名称,因此您可以直接编写它
try:
import requests
except ImportError as ex:
sys.exit(f"unable to import requests: {repr(ex)} .. you can install it with 'pip install requests')
但是,请注意,这可能是某种形式的 XY Problem!
即。为什么未安装请求? (也许您应该捆绑一个 pip_requirements.txt
文件或创建一个 setup.py
)
Packaging Python Projects Docs
您可以操作字符串来提取模块名称。您可以看到模块名称位于两个单引号之间。知道了这一点,我们就可以用str.index找到这两个索引,提取它们之间的所有数据,得到模块名。
try:
import blahblahdoesntexist
except ModuleNotFoundError as err1:
error = str(err1) # turns it into a string
first = error.index("'")
last = error.index("'", first + 1)
print(error[first + 1:last]) # gets the name only.
ModuleNotFoundError
中的模块名称由变量 name
try:
import this_module_doesnt_exist
except ModuleNotFoundError as error1:
print(error1.name)
输出:
this_module_doesnt_exist