Python:TypeError在运行脚本但不在解释器中时出错

Python:TypeError在运行脚本但不在解释器中时出错,python,installation,typeerror,Python,Installation,Typeerror,我正在尝试通过命令行或在解释器中使用以下命令运行Python文件: import sys import subprocess subprocess.call([sys.executable, "file.py", "arg1", "arg2", "arg3"]) 但是,该程序返回一个TypeError:“无法连接'str'和'numpy.float64'对象” 我不明白的是,当我在解释器中逐行运行程序时,没有这样的错误,一切都很好 我不知道从哪里开始调试,但我怀疑这可能与我的设置有关 我在Wi

我正在尝试通过命令行或在解释器中使用以下命令运行Python文件:

import sys
import subprocess
subprocess.call([sys.executable, "file.py", "arg1", "arg2", "arg3"])
但是,该程序返回一个TypeError:“无法连接'str'和'numpy.float64'对象”

我不明白的是,当我在解释器中逐行运行程序时,没有这样的错误,一切都很好

我不知道从哪里开始调试,但我怀疑这可能与我的设置有关

我在Windows7中安装了64位版本的Python和32位版本的Python。Python的两个版本都是2.7。(这是由于使用了一些仅32位可用的模块-因此,上述程序正在32位版本中运行)。环境路径变量已编辑为仅使用32位版本

我不确定还有什么其他相关信息,但请让我知道,我会把它挖出来

基本上,我只希望能够从以下命令运行程序:

python program.py arg1 arg2 arg3

非常感谢您提供的任何帮助

您很可能将参数传递给函数,而无需将其从字符串表示形式转换为参数-当您在解释器中测试代码并为其提供数字时,一切当然都会按预期工作。如果您正在做这样的事情:

# Wild guess at what your code actually looks like

if __name__ == "__main__":
    # main_function(23.1, 44.9, 12.21)  # This works when uncommented ... why?
    main_function(sys.argv[1], sys.argv[2], sys.argv[3])  # This breaks ... why?
然后知道当你打电话时:

python program.py 23.1 44.9 12.21
您实际上是在使用以下命令调用
main\u函数

main_function("23.1", "44.9", "12.21")

您需要使用
float
类型构造函数显式地将参数转换为float。

您很可能将参数传递给函数,而无需从其字符串表示形式转换参数-当您在解释器中测试代码并为其提供数字时,当然,一切都将,按预期工作。如果您正在做这样的事情:

# Wild guess at what your code actually looks like

if __name__ == "__main__":
    # main_function(23.1, 44.9, 12.21)  # This works when uncommented ... why?
    main_function(sys.argv[1], sys.argv[2], sys.argv[3])  # This breaks ... why?
然后知道当你打电话时:

python program.py 23.1 44.9 12.21
您实际上是在使用以下命令调用
main\u函数

main_function("23.1", "44.9", "12.21")

您需要使用
float
类型构造函数显式地将参数转换为float。

为什么不运行
python file.py arg1 arg2 arg3
?为什么不运行
python file.py arg1 arg2 arg3
?当然可以!天哪,这其实是一个相当愚蠢的问题。非常感谢你的帮助。哦,是的,当然!天哪,这其实是一个相当愚蠢的问题。非常感谢你的帮助。