如何设置$ django-admin.py manage.py startproject"
在 bash shell 中运行没有“python”关键字的 py 文件的默认 python?
答案1
这取决于 .py 文件的第一行(“shebang 行”)。通常你会看到类似这样的内容:
#!/usr/bin/python2.6
在这种情况下,脚本作为独立可执行文件运行时将使用 /usr/bin/python2.6 处的 Python 版本运行。为什么是这个版本的 Python?它可能已被硬编码到脚本中,但更可能是在安装脚本时自动设置的。例如,当您安装 Django 时,您可以:
- 下载源代码并运行
python setup.py
- 在这种情况下,脚本将被安装以使用您运行 setup.py 的 python 版本运行 - 运行
easy_install django
- 在这种情况下,脚本将使用 easy_install(也是 Python 脚本)使用的相同版本的 python 进行安装。(这就是为什么您经常会看到列出多个版本的 easy_install,例如,我有 easy_install-2.5、easy_install-2.6 和 easy-install-2.7。当我直接输入时,easy_install
它使用 easy_install-2.6。) - Ran
pip install django
– 与 easy_install 基本相同。
要使用其他版本的 Python 运行该脚本,您可以更改 shebang 行(例如改为#!/usr/bin/python2.7
)或在命令行上指定您的 python(例如/path/to/python2.7 /path/to/django-admin.py args
)。但请注意,诸如 django-admin.py 之类的脚本只是一组更大的库(在本例中为 Django)的前端,并且这些库将默认安装在特定版本的 Python 的库位置中。例如,如果 django-admin.py 的第一行表明它在 Python 2.6 下运行,则 Django 库将安装在特定于 Python 2.6 的库目录中,并且默认情况下它们将不可用于 Python 2.7。
在其他情况下,你会看到如下行:
#!/usr/bin/env python
在这种情况下,脚本将使用您python
在命令行中输入时获得的任何版本的 Python 运行。您将能够更改具有此类 shebang 行的脚本所具有的 python 版本,例如,通过更改 PATH 环境变量,以便您的 shell 可以在不同的目录中找到 python。
无论哪种情况,你都应该考虑看看虚拟环境包装器,扩展至虚拟环境。它允许您快速轻松地为 Python 项目设置多个虚拟环境,每个虚拟环境都有自己的默认 Python 版本和库。
更新:既然你的问题提到了 OS X,那么值得一提的是,在 OS X 中,/usr/bin/python 运行的是用户可配置的 Python 版本。请参阅OS X Python 手册页了解详情。
答案2
找到长版本这里:
简而言之:
defaults write com.apple.versioner.python Version x.x
/usr/bin/python -V
-> Python x.x.y
在运行 CLI 会话时快速切换
export VERSIONER_PYTHON_VERSION=2.5
/usr/bin/python -V
-> Python 2.5.6
恢复默认standard python
unset VERSIONER_PYTHON_VERSION