-----------------------------------------------------
The project contains obsolete dependencies:
Flask
scikit-learn
scipy
Consider removing them from your projects dependencies. If a package is used for development purposes, you should add
it to your development dependencies instead.
-----------------------------------------------------
5条答案
按热度按时间muk1a3rh1#
您可以在PyCharm中使用代码检查。
1.删除
requirements.txt
的内容,但保留空文件。1.将项目加载到,
Code -> Inspect code...
。1.在对话框中选择
Whole project
选项,然后单击OK
。在检查结果面板中,找到Python
下的Package requirements
部分(请注意,仅当存在任何requirements.txt
或setup.py
文件时,才会显示此部分)。此部分将包含以下消息之一:Package requirement '<package>' is not satisfied
(如果有任何软件包列在requirements.txt
中,但未在任何.py文件中使用)。Package '<package>' is not listed in project requirements
(如果有任何包在.py文件中使用,但未在requirements.txt
中列出)。您对第二个检查感兴趣。您可以通过右键单击
Package requirements
部分并选择Apply Fix 'Add requirements '<package>' to requirements.txt'
来将所有使用的包添加到requirements.txt
。注意,它将只显示一个包名称,但如果对部分进行调用,它实际上会将所有使用的包添加到requirements.txt
。如果需要,可以逐个添加,右键单击某个 Package 对应的检验,选择
Apply Fix 'Add requirements '<package>' to requirements.txt'
,对每一个此类检验重复操作。之后,您可以创建干净的虚拟环境,并从新的
requirements.txt
安装包。另外请注意,PyCharm有导入优化功能,请参见Optimize imports...。在上面列出的任何其他步骤之前使用此功能可能会很有用。
cwxwcias2#
最好的办法是使用(fresh)python venv/virtual-env,没有包,或者只有那些您确定需要的包,测试你的软件包-用
pip
安装缺失的软件包当你遇到问题时,这对大多数软件来说应该是相当快的,然后使用pip freeze
命令列出你真正需要的软件包。您最好使用pip wheel
创建一个包含中的包的wheel。另一种办法是:
1.使用pylint检查每个文件是否有未使用的导入并删除它们(无论如何都应该这样做),
1.进行测试以确保它是正确的,
1.使用snakefood或snakefood3之类的工具生成新的依赖项列表
请注意,要使任何依赖项检查正常工作,建议避免条件导入和函数内的导入。
另外请注意,为了确保您拥有一切,最好构建一个新的venv/virtual-env,并从依赖项列表中安装,然后重新测试您的代码。
7z5jn7bk3#
您可以使用deptry来查找过时的依赖项,deptry是一个命令行实用程序,用于检查项目依赖项的各种问题,例如过时的、丢失的或可传递的依赖项。
使用将其添加到项目
然后运行
输出示例:
请注意,为了获得最佳效果,您应该为项目使用虚拟环境,例如,请参见here。
免责声明:我是
deptry
的作者。68bkxrlz4#
在pycharm中,进入Tools -〉Sync Python Requirements。这里有一个“删除未使用的需求”复选框。
8wtpewkr5#
我已经成功地使用了pip-check-reqs。
使用命令
pip-extra-reqs your_directory
,它将检查your_directory
中所有未使用的依赖项用
pip install pip-check-reqs
安装。