我正在整理我的项目virtualenv requirements.txt
,并希望确保包含所有必需的软件包。导入json
和hashlib
时出错,直到我意识到这些模块已包含在Python 3.6中
有没有办法找出import
ed模块是否是已发布的Python模块的一部分而且我不需要通过pip
进行安装?
答案 0 :(得分:0)
您可以通过以下方式测试requirements.txt
文件以防止干净的Python安装:
requirements = [r.split('=')[0] for r in open('requirements.txt').readlines()]
for r in requirements:
r = r.replace('-', '_')
try:
exec('import {}'.format(r.lower()))
except ImportError:
try:
exec('import {}'.format(r.upper()))
except ImportError:
try:
exec('import {}'.format(r.capitalize()))
except ImportError:
print('{} is not a built-in module'.format(r))
不是我编写的最漂亮的代码,但它完成了工作;)