从集成Python解释器调用外部脚本

从集成Python解释器调用外部脚本,python,external,interpreter,laravel-artisan,Python,External,Interpreter,Laravel Artisan,我正在努力使用一个简单的Python脚本,我想从另一个用Python编写的程序中调用它。由于我对Python非常陌生,我不知道如何解决这个问题 我使用的是在集成解释器中运行的。Artisan允许我定义触发操作的按钮,例如调用外部脚本。 在我的例子中,这个外部脚本应该通过串行端口与Arduino通信。我的外部脚本最初是用Python3编写的,但出于测试目的,我还将代码更改为Python2。 这就是它看起来的样子: #!/usr/bin/env python3 import sys import t

我正在努力使用一个简单的Python脚本,我想从另一个用Python编写的程序中调用它。由于我对Python非常陌生,我不知道如何解决这个问题

我使用的是在集成解释器中运行的。Artisan允许我定义触发操作的按钮,例如调用外部脚本。 在我的例子中,这个外部脚本应该通过串行端口与Arduino通信。我的外部脚本最初是用Python3编写的,但出于测试目的,我还将代码更改为Python2。 这就是它看起来的样子:

#!/usr/bin/env python3
import sys
import time
import serial

PORT = '/dev/tty.usbmodemFA131'

with serial.Serial(PORT, 9600) as arduino:
    time.sleep(2)
    arduino.write(sys.argv[1].encode('ASCII'))
    print(arduino.readline())
当我从终端运行这段代码时(我使用的是MacOS 10.11.5),它的工作原理和预期的一样

当我从Artisan内部调用它时,Python崩溃,显示以下通知:

上次登录:周三7月13日07:21:46在ttys000 Philipps Air:~philipp上$ /Applications/Artisan.app/Contents/MacOS/Artisan;出口7月13日 07:22:20工匠[40170]: /Applications/Artisan.app/Contents/Resources/lib/python2.7/site packages.zip/matplotlib/font_manager.py:273: 用户警告:Matplotlib正在使用fc列表生成字体缓存。这 可能需要一点时间。7月13日07:22:57工匠[40170]:致命 Python错误:Py_初始化:无法加载文件系统编解码器Jul 13 07:22:57 Artisan[40170]:输入错误:未命名模块 “编码”7月13日07:22:57工匠[40170]:7月13日07:22:57 Artisan[40170]:当前螺纹0x00007fff73660000(大多数 最近通话(优先):

接下来,我尝试从Artisan内部调用另一个短脚本来调用上述脚本:

from subprocess import call
call(['./arduino.py', sys.argv[1]])
导致相同的错误:/

将代码更改为Python2时,通知会更改,但脚本也不会执行:

7月13日18:56:15 Artisan[40956]:回溯(最近的电话) 最后):7月13日18:56:15工匠[40956]:文件 “/Users/philipp/arduino.py”,第5行,7月13日18:56:15 Artisan[40956]:导入序列Jul 13 18:56:15 Artisan[40956]:文件“serial/init.pyo”,第13行,在 Jul 13 18:56:15 Artisan[40956]:文件 “serial/serialutil.pyo”,第10行,7月13日18:56:15 Artisan[40956]:文件“io.pyo”,第51行,7月13日 18:56:15工匠[40956]: dlopen(/Applications/Artisan.app/Contents/Resources/lib/python2.7/lib-dynload//u io.so, 2) :未找到符号:\ uuuPyCodecInfo\uGetIncrementalDecoder 7月13日 18:56:15 Artisan[40956]:引用自: /Applications/Artisan.app/Contents/Resources/lib/python2.7/lib-dynload//u io.so 7月13日18:56:15工匠[40956]:预计在:公寓 命名空间Jul 13 18:56:15 Artisan[40956]:在 /Applications/Artisan.app/Contents/Resources/lib/python2.7/lib-dynload//u io.so

我尝试了hash-rpython,但这没有改变任何事情

为了让我的脚本由外部Python(最好是Python 3)解释器解释,而不是使用Artisan集成的解释器,我必须做什么

所有脚本都是可执行的,必要的lib都安装到了MacOS附带的Python3和Python2中

非常感谢你的帮助

菲利普