![如何通过在终端中输入名称直接打开 Python 脚本(Mac OS X)](https://linux22.com/image/1267154/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E5%9C%A8%E7%BB%88%E7%AB%AF%E4%B8%AD%E8%BE%93%E5%85%A5%E5%90%8D%E7%A7%B0%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%20Python%20%E8%84%9A%E6%9C%AC%EF%BC%88Mac%20OS%20X%EF%BC%89.png)
我正在安装 django 并在我的系统上运行它。
我有一个问题,但是教程通过运行命令来解释如何创建项目
django-admin.py startproject mysite
我的问题是,这不起作用。我切换到 django-admin.py 所在的目录并运行命令
chmod +x django-admin.py
没有结果。我尝试将包含该文件的目录添加到我的路径中,但没有结果。我最终用这个命令解决了我的问题
python /location/of/django-admin.py startproject mysite
这产生了我预期的结果。我的问题是:我需要更改/配置什么才能使命令
django-admin.py startproject mysite
就足够了吗?
以下是一些实验:
21:09~/Desktop/HI/NSN/Polls > django-admin.py startproject mysite
-bash: django-admin.py: command not found
21:09~/Desktop/HI/NSN/Polls > ./django-admin.py startproject mysite
-bash: ./django-admin.py: No such file or directory
21:09~/Desktop/HI/NSN/Polls > python django-admin.py startproject mysite
python: can't open file 'django-admin.py': [Errno 2] No such file or directory
21:09~/Desktop/HI/NSN/Polls > /opt/local/lib/python2.4/site-packages/django/bin/django-admin.py startproject prufa1
-bash: /opt/local/lib/python2.4/site-packages/django/bin/django-admin.py: /opt/local/bin: bad interpreter: Permission denied
21:09~/Desktop/HI/NSN/Polls > sudo /opt/local/lib/python2.4/site-packages/django/bin/django-admin.py startproject prufa1Password:
sudo: unable to execute /opt/local/lib/python2.4/site-packages/django/bin/django-admin.py: Permission denied
21:09~/Desktop/HI/NSN/Polls > sudo /opt/local/lib/python2.4/site-packages/django/bin/django-admin.py startproject prufa1sudo: unable to execute /opt/local/lib/python2.4/site-packages/django/bin/django-admin.py: Permission denied
21:09~/Desktop/HI/NSN/Polls > python /opt/local/lib/python2.4/site-packages/django/bin/django-admin.py startproject prufa1
21:09~/Desktop/HI/NSN/Polls > ls
mysite prufa1
最终编辑:问题已解决,请参阅 Ian C 的答案以找到正确的解决方案。谢谢大家帮助我,速度非常快!
答案1
您可以使用 @Matt Jenkins hashbang (!#) 提示的更通用版本来使脚本更易于移植。确保文件中的第一行是:
#!/usr/bin/env python
...everything else...
python
这说明“通过搜索我来查找一个名为的程序PATH
,然后使用该程序运行该脚本的其余部分”。
您还需要使用以下命令设置脚本的执行位:
chmod +x django-admin.py
我提到这一点是为了完整性,并指出你已经这样做了。
最后,PATH
变量实际上不包含.
它(当前工作目录)。这是一项安全预防措施,我不建议更改该设置(例如./rm
,当您想要 shell 时,它会阻止您调用rm
)。因此,您需要使用以下命令调用脚本:
./django-admin.py startproject mysite
这说明“在当前工作目录中查找 django-admin.py”而不是“搜索变量PATH
”,如果省略该./
部分就会发生这种情况。
答案2
文件中的第一行应包含运行以 #! 为前缀的脚本的程序(称为 hashbang)
例如:
#!/path/to/python
...python code follows...
然后,您可以在文件上设置可执行位,并且 shell 将使用第一行中的程序作为解释器将其解释为脚本。
这通常与 shell 脚本一起使用,例如:
#!/bin/sh
for FILE in `ls`
{
echo "Filename: ${FILE}"
}
答案3
在中选择文件发现者单击一次即可。
来自文件菜单,选择获取信息。
在信息窗口中,单击“打开用:”来扩展窗口的该部分。
在出现的下拉菜单中,选择应用程序您希望使用它来打开文件。
答案4
当你更改文件 django-admin.py 权限时,你必须写下这些:
sudo chmod + x django-admin.py
对我有用