【发布时间】:2021-03-24 05:23:14
【问题描述】:
我刚开始学习 django,对如何设置虚拟环境感到非常困惑。
我已经成功安装了python:
当我运行python --version 我得到
Python 3.8.1
当我运行python3 --version 我得到
Python 3.8.1
我的第一个问题是当我运行which -a python3 时,我得到了这个
/Library/Frameworks/Python.framework/Versions/3.8/bin/python3
/usr/local/bin/python3
/usr/bin/python3
有人可以帮我理解为什么我有 3 个位置存在 python3 吗?
我的第二个问题是我已经成功安装了virtaulenv 和virtualenvwrapper
当我运行virtualenv --version 时,我得到:
virtualenv 20.4.3 from /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/virtualenv/__init__.py
当我运行virtualenvwrapper --version 时,我得到:
-bash: virtualenvwrapper: command not found
这就是为什么当我运行mkvirtualenv test 时,我不断收到找不到命令。
我的第三个问题是virtualenv test和mkvirtualenv test有什么区别?
【问题讨论】:
-
所以如果你去
/usr/local/bin和/usr/bin/...列出python3...你会发现有一个软链接。这些所有python3都将链接到同一个二进制python。 -
@ShivendraPratapKushwaha 列出 python3 以查找软链接是什么意思?
-
你可以在
/usr/local/bin和/usr/bin/路径中做ls -ld python3... -
@ShivendraPratapKushwaha 对于
/usr/local/bin我得到lrwxr-xr-x 1 root wheel 69 26 Jan 2020 python3 -> ../../../Library/Frameworks/Python.framework/Versions/3.8/bin/python3和对于/usr/bin/我得到-rwxr-xr-x 1 root wheel 31488 22 Sep 2020 python3它们不一样,为什么? -
所以你有两个不同的python3。
/usr/bin是分发管理的。/usr/local/bin不是一个分发管理,而是一个本地包安装。不建议将本地软件包安装在/usr/bin中,否则会影响分发管理的一些更新...现在如果您这样做echo $PATH。您会看到/usr/local/bin将出现在/usr/bin之前。这样您就可以使用本地包,如果找不到本地包,则系统将从/usr/local即分发管理器获取它。
标签: python python-3.x virtualenv virtualenvwrapper