virtualenv创建指定python3.6.7
时间: 2023-12-03 07:35:54 浏览: 130
您可以使用以下命令在指定的 Python 版本下创建一个虚拟环境:
```bash
virtualenv -p /usr/bin/python3.6.7 myenv
```
这将在当前目录下创建一个名为 `myenv` 的虚拟环境,并使用 Python 3.6.7 版本。请确保您已经安装了相应版本的 Python,并将 `/usr/bin/python3.6.7` 替换为您系统中 Python 3.6.7 的路径。
相关问题
fengkai@ubuntu:~$ sudo apt install python3 [sudo] password for fengkai: Reading package lists... Done Building dependency tree Reading state information... Done python3 is already the newest version (3.6.7-1~18.04). The following packages were automatically installed and are no longer required: gir1.2-goa-1.0 gir1.2-snapd-1 Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. fengkai@ubuntu:~$ python --version Python 2.7.17
<think>我们正在处理用户的问题:在Ubuntu系统中,虽然已经安装了Python 3,但运行`python --version`仍然显示2.7.17,用户想知道如何设置默认版本为Python 3。
根据提供的引用,我们可以总结如下:
- 引用[1]和[2]表明Ubuntu系统默认自带Python 2.7和Python 3.x(如3.6或3.8),并且默认情况下`python`命令指向Python 2.7。
- 引用[3]介绍了如何安装Python 3,但安装后可能不会自动更改`python`命令的指向。
- 引用[4]展示了系统中可能存在的多个Python版本路径。
- 引用[5]则提到了安装Python 2.7.17时可能需要的一些依赖。
用户的问题核心是:如何将`python`命令的默认版本从2.7.17更改为已安装的Python 3版本。
解决方案通常有两种:
1. 使用`update-alternatives`工具来管理不同版本的优先级(如引用[1]所示)。
2. 直接创建符号链接(但更推荐使用`update-alternatives`,因为它可以更好地管理多个版本)。
步骤详解:
### 方法1:使用update-alternatives(推荐)
1. **确保已安装Python 3**。如果尚未安装,可以使用以下命令安装(以Python 3.8为例):
```bash
sudo apt update
sudo apt install python3.8
```
2. **将Python 3添加到update-alternatives**(如果之前没有添加过):
```bash
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2
```
这里,我们为Python 2.7设置优先级为1,为Python 3.8设置优先级为2(数字越大优先级越高)。
3. **配置默认版本**:
运行以下命令并选择Python 3对应的序号:
```bash
sudo update-alternatives --config python
```
系统会显示一个菜单,列出所有可用的Python版本,输入对应Python 3的序号并按回车。
4. **验证**:
```bash
python --version
```
应该显示Python 3.x的版本。
### 方法2:直接修改符号链接(如果不想使用update-alternatives)
1. 备份当前的`python`链接(可选):
```bash
sudo cp /usr/bin/python /usr/bin/python.bak
```
2. 删除原来的`python`链接,并创建指向Python 3的新链接:
```bash
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.8 /usr/bin/python
```
3. 验证:
```bash
python --version
```
**注意**:直接修改符号链接可能会影响系统的一些脚本,因为有些系统工具(如apt)依赖于Python 2.7。因此,推荐使用方法1,因为它可以方便地切换回Python 2.7(如果需要)。
### 额外说明
- 在Ubuntu 20.04及更高版本中,系统不再默认安装Python 2,因此`python`命令可能直接指向Python 3。但用户使用的是18.04(从引用[2]中看出),所以默认还是Python 2。
- 如果用户希望在不改变系统默认`python`命令的情况下使用Python 3,可以直接使用`python3`命令。
### 相关问题
根据用户的问题,我们生成以下相关问题:
1. 如何同时管理多个Python版本(如使用pyenv)?
2. 更改默认Python版本后,如何修复可能受影响的系统工具(如apt)?
3. 如何在虚拟环境中使用特定版本的Python?</think>### Ubuntu 中设置 Python 3 为默认版本的方法
在 Ubuntu 系统中,虽然已安装 Python 3,但 `python --version` 仍显示 2.7.17 是因为系统默认将 `python` 命令关联到 Python 2.x。以下是两种解决方案:
#### ✅ 方法 1:使用 `update-alternatives`(推荐)
```bash
# 将 Python 3 添加到备选项(优先级设为 2)
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2
# 将 Python 2 添加到备选项(优先级设为 1)
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
# 交互式选择默认版本
sudo update-alternatives --config python
```
➡️ 在出现的菜单中选择 Python 3 对应的编号(通常显示为 `/usr/bin/python3`),按回车确认。
#### ✅ 方法 2:手动修改符号链接
```bash
# 删除原有链接
sudo rm /usr/bin/python
# 创建指向 Python 3 的新链接(以 Python 3.8 为例)
sudo ln -s /usr/bin/python3.8 /usr/bin/python
```
#### 🔍 验证更改
```bash
python --version
# 正确输出应类似:Python 3.8.10
```
### ⚠️ 重要注意事项
1. **系统兼容性问题**
Ubuntu 的某些系统工具(如 `apt`)依赖 Python 2.7,强行修改可能导致系统功能异常。若遇到问题,可通过 `sudo update-alternatives --config python` 切回 Python 2.7。
2. **替代方案**
日常开发建议直接使用显式命令:
```bash
python3 --version # 明确调用 Python 3
pip3 install ... # 使用 Python 3 的 pip
```
3. **版本路径确认**
通过以下命令查找已安装的 Python 3 路径:
```bash
ls /usr/bin/python3* # 查看所有 Python 3 版本
```
> 💡 提示:Ubuntu 20.04 及以上版本已默认取消 `python` 命令绑定,直接使用 `python3` 即可[^2][^4]。
---
### 相关问题
1. **如何在不影响系统工具的情况下为特定用户设置默认 Python 版本?**
2. **使用 `pyenv` 管理多版本 Python 的步骤是什么?**
3. **修改默认 Python 版本后如何修复受影响的系统工具(如 apt)?**
4. **Python 虚拟环境(virtualenv)如何指定解释器版本?**
[^1]: Ubuntu 系统默认同时安装 Python 2.7 和 Python 3.x,`python` 命令默认指向 2.7 版本。
[^2]: Ubuntu 18.04 默认安装 Python 2.7.17 和 Python 3.6.9,命令行中通过不同命令区分版本。
[^4]: 系统中可能同时存在多个 Python 版本路径,需明确指定目标版本。
阅读全文
相关推荐



















