2012-10-18 52 views

回答

2

我不認爲在setuptools中有這樣的選項。您可以創建一個存根腳本,並在scripts distutils選項中指定它。基於Is it possible to set the python -O (optimize) flag within a script?

#!/usr/bin/env python 
from your_package.script import main 

if __name__=="__main__": 
    import os, sys 
    sentinel_option = '--dont-add-no-site-option' 
    if sentinel_option not in sys.argv: 
     sys.argv.append(sentinel_option) 
     os.execl(sys.executable, sys.executable, '-S', *sys.argv) 
    else: 
     sys.argv.remove(sentinel_option) 
     main() 
+0

這似乎是一個很好的解決方法,我會檢查是否有效,沒有這樣的選項將其標記爲答案。 –

+0

我剛剛發現使用「scripts」而不是entry_points setuptools將會保留shebang,然後我可以在最後一個腳本的第一行放置一個#!/ usr/bin/python -S。 –

+0

@JorgeEduardoCardona:shebang是一個不錯的選擇,但是如果你使用顯式的解釋器'python path/to/script'調用腳本,它不允許''使用'/ usr/bin/env python ',除非安裝了pylauncher(它可能支持shebang中的選項),否則它將不能在Windows上工作(它可能支持shebang中的選項) – jfs