python cmd error: invalid command 'y'
python cmd error: invalid command 'y'
Python - 解析以下命令行参数时...
sys.argv = ('%s %s build_ext --inplace' % ('python', sys.argv[0]))
...对于我的构建脚本中的 Cython "myscript_pyd_setup.py" for "myscript.pyd" 使用 "myscript.py" 文件我收到以下错误 (e1):
python error 1: invalid command 'y'
pythoncommand-line optionpython -- help
显示没有对应的选项'y'。这是有道理的,否则错误将不存在。搜索 SO、Python 文档和网络得到了关于 Tkinter
的无关文章。据我所知,我对 Tkinter 什么也没做,我想知道这个错误是否完全来自 python 命令行解释器?
我的努力:
我试图完成的是在编辑器中 运行ning "buildscript" 时将参数 sys.argv.append('build_ext --inplace')
解析为 python 命令行解释器(Komodo edit 11.x) 但它 returns 也有一个错误 (e2) 类似于来自命令行或其他编辑器的版本。
python error 2: invalid command name 'build_ext --inplace'
运行 "myscript_pyd_setup.py" 和 sys.argv.append('build_ext')
构建所需的 *.pyd 文件就好了。我不明白的是为什么它在 --infile
上令人窒息。这适用于 py2exe
和 pyinstaller
.
objective:
从编辑器中 运行 "myscript.py" 的设置脚本,而不必来回切换到命令行编辑器来编译 *.py > *.pyd当我更改 "myscript.py" 中的代码并希望快速查看结果时。
Note: parsing command-line python myscript_pyd_setup.py build_ext --inplace
works fine when sys.argv...
is commented-out in the "buildscript"!
第三个选项是将 cythonize
与 "myscript.py" 和 "myscript.pyd" 文件结合使用,但显示 "myscript.pyd" 的复制文件错误。相关但与上述 "error = y" 问题无关。
非常欢迎任何关于如何自动执行此部分以防止 RSI 的想法和帮助!谢谢
我的"myscript.py"示例代码:
import sys, time, os
#...snippet...
def print_me():
text = "bar(man), yes, Hello, how do you do Mr. foo?"
return text
if __name__ == '__main__':
#...snippet...
print_me()
myscript_pyd_setup.py:
# myscript.py
try:
from setuptools import setup
from setuptools import Extension
except ImportError:
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
#from Cython.Build import cythonize
import sys
print 'sys.argv[0] : %s' % sys.argv[0]
#sys.argv = ('%s %s build_ext --inplace' % ('python', sys.argv[0]))
sys.argv.append('build_ext --inplace')
ext_modules = [Extension("myscript",['myscript.py'])]
#ext_modules = cythonize("myscript.py")
#setup: "name" and "cmdclass" are commented-out when using cythonize.
setup(
name= 'XYZ model class',
cmdclass = {'build_ext': build_ext},
include_dirs = [],
ext_modules = ext_modules)
sys.argv
是参数列表。当您追加 'build_ext --inplace'
时,您实际上是将其作为单个参数追加(就好像您从 shell 命令行将其用引号引起来一样)。第二种情况就是这样。
在第一个中,您已将字符串分配回 sys.argv
。但是字符串也是一个序列,所以你的命令 运行 就好像用 (argv[1:]
): ['y', 't', `h`, ...]
在任何一种情况下,您最终都会得到一个 option/sub-command 未知的参数解析器。
Python - 解析以下命令行参数时...
sys.argv = ('%s %s build_ext --inplace' % ('python', sys.argv[0]))
...对于我的构建脚本中的 Cython "myscript_pyd_setup.py" for "myscript.pyd" 使用 "myscript.py" 文件我收到以下错误 (e1):
python error 1: invalid command 'y'
pythoncommand-line optionpython -- help
显示没有对应的选项'y'。这是有道理的,否则错误将不存在。搜索 SO、Python 文档和网络得到了关于 Tkinter
的无关文章。据我所知,我对 Tkinter 什么也没做,我想知道这个错误是否完全来自 python 命令行解释器?
我的努力:
我试图完成的是在编辑器中 运行ning "buildscript" 时将参数 sys.argv.append('build_ext --inplace')
解析为 python 命令行解释器(Komodo edit 11.x) 但它 returns 也有一个错误 (e2) 类似于来自命令行或其他编辑器的版本。
python error 2: invalid command name 'build_ext --inplace'
运行 "myscript_pyd_setup.py" 和 sys.argv.append('build_ext')
构建所需的 *.pyd 文件就好了。我不明白的是为什么它在 --infile
上令人窒息。这适用于 py2exe
和 pyinstaller
.
objective:
从编辑器中 运行 "myscript.py" 的设置脚本,而不必来回切换到命令行编辑器来编译 *.py > *.pyd当我更改 "myscript.py" 中的代码并希望快速查看结果时。
Note: parsing command-line
python myscript_pyd_setup.py build_ext --inplace
works fine whensys.argv...
is commented-out in the "buildscript"!
第三个选项是将 cythonize
与 "myscript.py" 和 "myscript.pyd" 文件结合使用,但显示 "myscript.pyd" 的复制文件错误。相关但与上述 "error = y" 问题无关。
非常欢迎任何关于如何自动执行此部分以防止 RSI 的想法和帮助!谢谢
我的"myscript.py"示例代码:
import sys, time, os
#...snippet...
def print_me():
text = "bar(man), yes, Hello, how do you do Mr. foo?"
return text
if __name__ == '__main__':
#...snippet...
print_me()
myscript_pyd_setup.py:
# myscript.py
try:
from setuptools import setup
from setuptools import Extension
except ImportError:
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
#from Cython.Build import cythonize
import sys
print 'sys.argv[0] : %s' % sys.argv[0]
#sys.argv = ('%s %s build_ext --inplace' % ('python', sys.argv[0]))
sys.argv.append('build_ext --inplace')
ext_modules = [Extension("myscript",['myscript.py'])]
#ext_modules = cythonize("myscript.py")
#setup: "name" and "cmdclass" are commented-out when using cythonize.
setup(
name= 'XYZ model class',
cmdclass = {'build_ext': build_ext},
include_dirs = [],
ext_modules = ext_modules)
sys.argv
是参数列表。当您追加 'build_ext --inplace'
时,您实际上是将其作为单个参数追加(就好像您从 shell 命令行将其用引号引起来一样)。第二种情况就是这样。
在第一个中,您已将字符串分配回 sys.argv
。但是字符串也是一个序列,所以你的命令 运行 就好像用 (argv[1:]
): ['y', 't', `h`, ...]
在任何一种情况下,您最终都会得到一个 option/sub-command 未知的参数解析器。