如何确定要为这些导入 pip 安装哪些 python 模块?

如何确定要为这些导入 pip 安装哪些 python 模块?

我正在尝试运行一些带有一些下标的脚本,并且每个脚本都执行一些导入。总体而言,这些是(并删除那些from以点开头的参数):

from datetime import datetime
from pathlib import Path
from timeit import default_timer as timer
from tkinter import *
from tkinter import messagebox
from tkinter.filedialog import askdirectory
from tkinter.filedialog import askopenfilename
import abc
import argparse
import copy
import csv
import json
import os
import re
import time
import xlsxwriter
import yaml

我想尝试使用 pip 安装这些导入工作所需的模块。也就是说,我想运行:

python3 -m pip install foo bar baz whatever

并拥有运行模型的所有必需品。这并不完全是微不足道的,因为,例如,如果我

python3 -m pip search yaml

有很多模块,但没有一个模块只是简单命名yaml。有一个yaml-1.3,但我不能 100% 确定这就是我需要的; whilexlsxwriter确实存在。

所以,我的问题是:如何确定对于上述导入需要安装哪些模块名称?

答案1

似乎没有某种自动化方法可以完全实现这一目标。然而,这是我能做到的最好的:

  1. 正如@Mark 所建议的:

    1.1 启动Python REPL(即python3在命令行运行)

    1.2 粘贴所有这些import命令

    1.3 检查Python列出哪些模块缺失;其他所有内容都已由“标准库”或系统上已安装的模块涵盖。

  2. 尝试按照 Python 本身的命名安装缺少的模块。你不必使用python3 -m pip install;你可以使用pip3 install(在大多数系统上)。

  3. 对于 pip 无法找到的模块,请在网络上搜索:DuckDuckGO、StackOverflow 等,查找“python foo module”或“how do I install the foo module for Python”等。

  4. 如果所有其他方法都失败,请检查您的操作系统发行版中是否有与 Python 模块相关的软件包以及您缺少的模块。某些模块通常是通过这种方式获得的。

就我而言,yaml来自pyyaml- 正如中所解释的这个 StackOverflow 问题;我使用 pip 安装了它。tkinter- 似乎无法通过 pip 获得,但我发现它作为分发包(在我的例子中 - Cygwin),并安装了它。

相关内容