为什么我无法使用 python3.8 在 ubuntu 20.04 LTS 中创建 pipenv shell?

为什么我无法使用 python3.8 在 ubuntu 20.04 LTS 中创建 pipenv shell?

创建执行命令时出现以下错误pipenv shell

⠋/usr/bin/python3: No module named pipenv.pew

Virtualenv location: 
Creating a Pipfile for this project…
Traceback (most recent call last):
  File "/usr/bin/pipenv", line 11, in <module>
    load_entry_point('pipenv==11.9.0', 'console_scripts', 'pipenv')()
  File "/usr/lib/python3/dist-packages/pipenv/vendor/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/pipenv/vendor/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3/dist-packages/pipenv/vendor/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3/dist-packages/pipenv/vendor/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3/dist-packages/pipenv/vendor/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/pipenv/cli.py", line 571, in shell
    core.do_shell(
  File "/usr/lib/python3/dist-packages/pipenv/core.py", line 2093, in do_shell
    ensure_project(three=three, python=python, validate=False)
  File "/usr/lib/python3/dist-packages/pipenv/core.py", line 636, in ensure_project
    ensure_pipfile(validate=validate, skip_requirements=skip_requirements)
  File "/usr/lib/python3/dist-packages/pipenv/core.py", line 289, in ensure_pipfile
    project.create_pipfile(python=python)
  File "/usr/lib/python3/dist-packages/pipenv/project.py", line 518, in create_pipfile
    'python_version': python_version(required_python)[: len('2.7')]

TypeError:'NoneType' 对象不可下标

为了在 heroku 上托管,我需要 pipenv shell。

答案1

我在 Ubuntu 20.04 上遇到了同样的问题,但由于你使用的是 heroku,我不确定你是否可以在你的终端中执行这些操作:

sudo apt-get remove python3-pipenv
sudo pip3 install pipenv (or sudo pip install pipenv)

之后,我又遇到了 virtualenv 版本的问题。为此,我删除了 python3-virtualenv 和 pip 安装的 virtualenv 版本

sudo apt-get remove python3-virtualenv
sudo pip3 install virtualenv

您可以检查 pipenv 是否有效:/home/[your_username]/.local/bin/pipenv

如果您仍然遇到 virtualenv 问题,请查看此处: https://github.com/pypa/pipenv/issues

运行完成后,将 /home/[your_user]/.local/bin/ 添加到你的 PATH 中:

export PATH=$PATH:~/.local/bin/

答案2

某些情况下您需要向二进制文件添加路径。比如添加/home/<username>/.local/bin到 $PATH。

用这个来添加它。

PYTHON_BIN_PATH="$(python3 -m site --user-base)/bin"
PATH="$PATH:$PYTHON_BIN_PATH"

答案3

有时这可能是由于权限问题。我运行sudo pipenv shell它,成功了。

答案4

我认为最好使用 python3-venv 而不是 pipenv

您可以使用以下代码进行安装

sudo apt install python3-venv

并使用以下命令创建一个虚拟环境:

python3 -m venv <folder name for virtualenv>

并使用以下命令激活它:

source <folder name for virtualenv>/bin/activate

并使用以下命令停用:

deactivate

您可以使用 python3.8 代替 python3(尤其是当您的系统上安装了另一个版本的 Python 时)

我希望这对你有帮助

相关内容