1

如果我尝试在 cygwin(64 位,WINdows10)中使用 autopep8,我会收到消息“找不到命令”。

$ autopep8
-bash: autopep8: command not found

我尝试了 pip install autopep8 但也找不到 pip,只有 pip2 和 pip3。如果我使用 python -m pip install autopep8 它可以工作,所以我可以打电话

python -m autopep8

但我想运行一个只调用 autopep8 的脚本:

if ! type -p autopep8 >/dev/null; then
    echo "autopep8 not found" >&2
    autopep8() {

任何想法如何解决这个问题?

4

1 回答 1

0

首先,您必须将 PyPi 包安装到正确的 Python 安装中,其次,您必须将相同的包安装到要使用它的每个 Python 安装中。

现在,关于在 Cygwin 上安装 Python 的特别说明。您可以选择安装多个 Python 版本,以及与每个版本一起使用的大量软件包。除非您有明确定义的原因,否则请避免使用 Python 版本 2,因为它已经过生命周期。相反,安装 Python 3 的版本之一。截至今天,版本 3.6 和 3.7 具有更完整的可选包集。版本 3.8 beta 4 可用。

对于我的 Python 3.8 安装,我使用 Cygwin 安装应用程序来安装这些包:Python38(Py3K 语言解释器)、Python38-pip(Python 包安装工具)、Python38-setuptools(Python 包管理工具)、Python38-virtualenv(创建独立的 Python 环境)和 Python38-wheel(Python 包格式模块)。要编写 X11 GUI 应用程序,请添加 Python38-tkinter(Py3K Tkinter GUI 模块)。要安装二进制包,请添加 Python38-devel(Py3K 语言解释器)。

您将能够从 PyPI 安装纯 Python 包。要安装二进制包,您还需要安装 GNU 编译器工具链,并且您需要自己处理与其他 Cygwin 包的依赖关系。

Python 3.6 和 3.7 安装有附加包,在许多情况下,这些包包含已解决上述依赖关系的二进制包,或者对 Cygwin 环境进行了一些有用的自定义。

Cygwin 同时具有 Python 2 和 Python 3。截至今天,安装后,您执行 Python 2 bypython和 Python 3 by python3。请注意您执行的 Python,因为您可能会在您的路径中获得 Python 的 Windows 版本(如果已安装)。which python总是会告诉你可执行文件的位置python -V,等等,会告诉你你正在运行哪个版本。通常,您希望从 bash 提示符运行 Cygwin 版本的 Python,而仅从命令提示符或 Windows GUI 运行 Python 的 Windows 版本。

使用 pip 最安全的方法是使用您选择的 Python 可执行文件的模块版本,即python -m pip等。这避免了还必须记住在 Python 中使用 pip 和在 Python3 中使用 pip3。

于 2020-02-01T19:22:58.837 回答