2011-03-26 39 views
3

如何在使用構建腳本構建腳本時爲Python指定參數?在腳本的shebang行中添加Python參數(腳本使用buildout和zc.recipe.egg:腳本)

這裏是我的buildout.cfg:

[buildout] 
parts = python 
develop = . 

[python] 
recipe = zc.recipe.egg:scripts 
eggs = myproject 

而且setup.py:

from setuptools import setup, find_packages 

setup(
    name = 'myproject', 
    packages = find_packages(), 
    entry_points = """ 
    [console_scripts] 
    myscript = myproject:main 
    """, 
) 

我得到這個配置以下家當:

$ pip install . 
$ head -n1 /usr/local/bin/myscript 
#!/usr/bin/python 

而且我想這樣的:

#!/usr/bin/python -u 

如何操作?我嘗試將arguments = -uinterpreter = python -u添加到buildout.cfg。它沒有工作。

回答

3

可以使用os.fdopen在filenumber通過重新開放標準輸入和標準輸出迫使無緩衝I/O從你的Python腳本中:

import sys, os 
unbuffered = os.fdopen(sys.stdout.fileno(), 'w', 0) 

然後,您可以重新分配sys.stdout的,如果你想使用使用標準輸出或標準輸入其它模塊或建造程序:

sys.stdout = unbuffered 

另見unbuffered stdout in python (as in python -u) from within the program

相關問題