首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python在电子应用程序中作为子进程运行时找不到已安装的模块

Python在电子应用程序中作为子进程运行时找不到已安装的模块
EN

Stack Overflow用户
提问于 2016-02-12 16:21:57
回答 1查看 1.4K关注 0票数 2

我在尝试使用child_process模块在电子中运行python脚本时遇到了一些问题。我最近在我的计算机(OSX10.11.2)上安装了Anaconda,并创建了以下脚本:

代码语言:javascript
复制
import pandas as pd
from pandasql import sqldf

# read dataset file
filename = "/path/to/my/dataset.csv"
df = pd.read_csv(filename, sep=',', error_bad_lines=False)

# esecute SQL-like query
q = '''
SELECT * FROM df
'''
syr_subset = sqldf(q, globals())

# print result
print syr_subset.to_json()

如果我使用python myscript.py在终端上运行这个脚本,一切都会正常工作(脚本使用熊猫加载一个csv文件,执行查询并返回结果)。

但是,如果我试图在电子内部运行相同的脚本,如下所示:

代码语言:javascript
复制
var exec = require('child_process').exec;
var child = exec('python -u /path/to/myscript.py',
  function(error, stdout, stderr) {
    console.log('stdout: ', stdout);
    console.log('stderr: ', stderr);
    if (error !== null) {
      console.log('exec error: ', error);
    }
});

我犯了个错误。

stderr包含以下内容:

代码语言:javascript
复制
stderr:  Traceback (most recent call last):
  File "/path/to/myscript.py", line 1, in <module>
    import pandas as pd
ImportError: No module named pandas

捕获的错误包含以下内容:

代码语言:javascript
复制
cmd: "/bin/sh -c python -u /path/to/myscript.py"
message: 
Command failed: /bin/sh -c python -u /path/to/myscript.py
Traceback (most recent call last):
  File "/path/to/myscript.py", line 1, in <module>
      import pandas as pd
      ImportError: No module named pandas 

所以看起来这个脚本,当在电子中运行时,找不到熊猫库(让我重复一遍,在终端运行时不会发生这种情况,那里一切都很正常)。据我所知,我没有使用虚拟环境。

再次在电子内部,我执行了/usr/bin/python.返回的python的

但是,如果我在终端中执行哪个python /Users/myusername/anaconda2/bin/python.,它将返回/Users/myusername/anaconda2/bin/python.

我不太明白为什么电子运行的二进制与我在终端中运行的默认二进制不同。

最后,为了更容易地测试这一点,因为真正的代码被嵌入到一个更大的电子应用程序中,我创建了一个新的电子项目并运行了完全相同的代码(我上面粘贴的代码片段)。令人惊讶的是,那里一切都很好。因此,两个不同的电子应用程序,但显然运行相同的代码:在一种情况下,它不工作(似乎运行不同的python二进制文件),在另一种情况下,它的工作。

知道这里会发生什么事吗?

非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2016-02-12 17:18:18

我最终通过删除Anaconda安装并用pip重新安装python模块来解决这个问题。不知道是什么导致了这个问题,但是这个解决方案现在已经满足了我的需要。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35367396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档