[使用扩展构建脚本时如何为Python指定参数?
这是我的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
""",
)
我通过此配置得到以下shebang:
$ pip install .
$ head -n1 /usr/local/bin/myscript
#!/usr/bin/python
我想要这个:
#!/usr/bin/python -u
如何做?我尝试将arguments = -u
和interpreter = python -u
添加到buildout.cfg
。它没有用。
您可以使用文件编号上的os.fdopen重新打开stdin或stdout,从而从Python脚本中强制执行无缓冲的I / O:>
import sys, os unbuffered = os.fdopen(sys.stdout.fileno(), 'w', 0)
然后,如果您想使用其他使用stdout或stdin的模块或内建模块,则可以重新分配sys.stdout:
sys.stdout = unbuffered
另请参阅unbuffered stdout in python (as in python -u) from within the program