如何在 WSL Ubuntu 18.04 上正确安装 Pipenv?

bya*_*ake 5 python pip windows-subsystem-for-linux ubuntu-18.04

我知道这听起来像是一个非常基本的问题,但在一天的大部分时间里,我一直让自己感到沮丧。我试图在 Windows 子系统中为 Linux 设置一个 python 环境,当我安装 pipenv 时,一切似乎都坏了。

重现步骤:

  1. 从 Windows 商店全新安装 Ubuntu 18.04

  2. sudo apt update && sudo apt upgrade

  3. sudo apt install python3-pip

  4. pip3 install --user pipenv

Pip 输出我期望的所有内容,没有错误,看起来像 pipenv 已安装。

如果我尝试使用 pipenv,pipenv: command not found即使我的本地 bin 在我的 PATH 中,我也会得到

比这更糟糕的是,pip 现在坏了,尝试使用 pip 会给我以下信息:

Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'
Run Code Online (Sandbox Code Playgroud)

因此,pipenv 安装似乎通过尝试安装自己的方式破坏了系统 pip。我认为--user旗帜会避免这种情况,但无论如何都被卡住了,任何帮助表示赞赏。

Bis*_*iyo 5

如果pipenv安装成功,将会出现这样的简短通​​知:

\n\n
\n

脚本 pipelinenv 和 pipeline-resolver 安装在 \'~/.local/bin\'\n 中,该路径不在 PATH 上。考虑将此目录添加到 PATH,或者,如果\n您希望抑制此警告,请使用 --no-warn-script-location。

\n
\n\n

根据文档

\n\n
\n

这将执行用户安装以防止破坏任何系统范围的软件包。如果安装后 Pipenv 在您的 shell 中不可用,则您需要将用户库 xe2x80x99s 二进制目录添加到您的 PATH 中。

\n\n

在 Linux 和 macOS 上,您可以通过运行 python -m site --user-base 并将 bin 添加到末尾来找到用户库二进制目录。例如,这通常会打印 ~/.local (将 ~ 扩展到主目录的绝对路径),因此您需要将 ~/.local/bin 添加到您的 PATH 。您可以通过修改 ~/.profile 来永久设置 PATH。

\n
\n\n

请按照以下步骤操作:

\n\n
    \n
  • 打开~/.profile文件。
  • \n
  • 检查~/.local/bin该文件中是否存在路径。
  • \n
  • 如果没有添加以下几行
  • \n
\n\n
# set PATH so it includes user\'s private bin if it exists\nif [ -d "$HOME/.local/bin" ] ; then\n    PATH="$HOME/.local/bin:$PATH"\nfi\n
Run Code Online (Sandbox Code Playgroud)\n\n\n\n
    \n
  • bash --login为登录模式运行,因为~/.profile是为登录 shell 执行的。
  • \n
  • ~/.bashrc(可选)为非登录 shell添加这些行。
  • \n
\n\n

\n