首页 > 解决方案 > 找不到命令“python”-在我将它分配为 python3 的别名之后

问题描述

我正处于使用 python 学习 django 的早期阶段。之前两者都没有做过。

我正在学习一门课程,讲师已经展示了如何使用 vagrant 启动一个新项目,并且主目录中的一个文件被称为Vagrantfile,没有文件扩展名(对于讲师来说也是如此)。

这些是文件的内容:

# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
 # The most common configuration options are documented and commented below.
 # For a complete reference, please see the online documentation at
 # https://docs.vagrantup.com.

 # Every Vagrant development environment requires a box. You can search for
 # boxes at https://vagrantcloud.com/search.
 config.vm.box = "ubuntu/bionic64"
 config.vm.box_version = "~> 20200304.0.0"

 config.vm.network "forwarded_port", guest: 8000, host: 8000

 config.vm.provision "shell", inline: <<-SHELL
   systemctl disable apt-daily.service
   systemctl disable apt-daily.timer

   sudo apt-get update
   sudo apt-get install -y python3-venv zip
   touch /home/vagrant/.bash_aliases
   if ! grep -q PYTHON_ALIAS_ADDED /home/vagrant/.bash_aliases; then
     echo "# PYTHON_ALIAS_ADDED" >> /home/vagrant/.bash_aliases
     echo "alias python='python3'" >> /home/vagrant/.bash_aliases
   fi
 SHELL
end

根据我的理解,这行echo "alias python='python3'" >> /home/vagrant/.bash_aliases告诉 vagrant,当我使用python命令时,它应该把它当作我写python3的 .

但是,当我编写以下命令python -m venv ~/env时,我会收到以下消息:

Command 'python' not found, but can be installed with:

apt install python3
apt install python
apt install python-minimal

Ask your administrator to install one of them.

我在运行命令后调用此命令vagrant ssh并且我已经在虚拟机中,并导航到 vagrant 目录。我知道是因为在 git bash 这显示为我当前的位置vagrant@ubuntu-bionic:/vagrant$

我不确定它是否相关,或者是否是不同的问题,但我会补充一点,即使我运行此命令python3 -m venv ~/env,我也会收到以下响应:

The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/home/vagrant/env/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']

如果我运行它推荐的安装命令(带有sudo),我会得到以下响应:

Reading package lists... Done
Building dependency tree
Reading state information... Done
Package python3-venv is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

这阻碍了我的学习,不知道如何与他一起前进。任何帮助表示赞赏。

标签: pythonpython-3.xdjangovagrant

解决方案


问题可能是别名python3python默认情况下 Ubuntu 18 同时发布了 Python 2 (python) 和 Python 3 (python3),并且不小心更改它会导致不稳定,从细微的错误到系统无法启动,您可以:

  • 用来update-alternatives改变它
  • python3按原样使用
  • 安装包python-is-python3(虽然我不确定这在 18 中是否可用)

无论如何,通过删除别名,一切都应该恢复正常。


推荐阅读