我是新來的Ubuntu ...我想經營我的第一個簡單的Python程序「Hello World」的... 在終端bash的權限被拒絕了蟒蛇
1. chmod +x filename.py
2. ./filename.py
終端中運行以下命令後顯示以下錯誤「bash: ./filename.py: Permission denied
」 有什麼可以解決的問題?
我是新來的Ubuntu ...我想經營我的第一個簡單的Python程序「Hello World」的... 在終端bash的權限被拒絕了蟒蛇
1. chmod +x filename.py
2. ./filename.py
終端中運行以下命令後顯示以下錯誤「bash: ./filename.py: Permission denied
」 有什麼可以解決的問題?
在python文件的頂部是否有適當的咒語?例如,
#!/usr/bin/python
(或備選地#!/usr/bin/env python
)
只是爲了澄清,chmod +x
僅使一個文件的可執行文件,它不運行它。
而且我假設你的腳本看起來像什麼比這更復雜:
#!/usr/bin/env python
print 'hello world'
一些可能性:
它說什麼,如果你鍵入umask
? chmod +x
只會爲您創建一個可執行文件,如果您的umask不會阻止用戶可執行位。一個典型的umask如0022不會阻止用戶的執行位,但像0122這樣的umask可以。 (更多信息見chmod(1)
描述部分。)
執行腳本如Python腳本,你還需要閱讀權限。嘗試chmod u+rx filename.py
並再次執行該腳本。
無論您在文件中使用「hashbang」行在文件中指定的任何解釋器(例如#!/usr/bin/env python
)是不可執行的,儘管根據我的經驗,這會產生不同的錯誤消息。
我在我的新系統上處理同樣的問題。
這是我第三次嘗試解決這個問題,你的文章是第一個出現在谷歌搜索結果中的文章。我的帖子很晚,但認爲它會幫助其他用戶遇到同樣的問題。
在我的情況下,它是關於分區表設置。
檢查你的/ etc/mtab文件是如何存儲python腳本的。檢查是否有一個條款:NOEXEC
NOEXEC是禁止分區下執行的標誌。默認情況下,它是用exec設置的。但是,有時候,這種事情會發生。
現在,它在這裏工作得很好。
你可以做'ls -l filename.py'併發布它說的內容..我對文件許可感到好奇(儘管'chmod + x filename.py'是使文件可執行的正確方法)。 – Levon
你在腳本的第一行是否有'#!/ usr/bin/env python'? –
Re'#!/ usr/bin/env python' vs'#!/ usr/bin/python'我被一些人強烈誡勉稱讚使用前者(我自己的所有腳本仍然這樣做),因爲可能你不能確定哪個Python會執行以防萬一你安裝了多個腳本,所以這個想法總是爲你想要的那個指定完整的路徑)。也許我應該提出這個問題並將其張貼在SO上。 – Levon