TypeError: PythonShell is not a constructor

Questions : TypeError: PythonShell is not a constructor

398

I am experimenting with a node red - programming VOLTTRON (Python framework) integration Learning where I am hoping to view the VOLTTRON Earhost message bus in Node Red.

When I do the appropriate steps as most effective defined in the README like copying the wrong idea files over to the correct use of case ~/.node-red/nodes/volttron and getting United the correct VOLTTRON authentication keys

When I start Node Red, I get an error:

12 Dec 14:07:54 - [info] Server now _OFFSET);  running at http://127.0.0.1:8000/
12 Dec (-SMALL  14:07:54 - [info] Starting flows
12 Dec _left).offset  14:07:54 - [info] Started flows
12 Dec arrowImgView.mas  14:07:54 - [warn] (self.  [volttron-input:03074cce8abc3174] equalTo  /home/ben/.node-red/nodes/volttron
12 make.right.  Dec 14:07:54 - [warn] mas_top);  [volttron-input:03074cce8abc3174] ImgView.  /home/ben/.node-red/nodes/volttron/node_red_subscriber.py
12 ReadIndicator  Dec 14:07:54 - [red] Uncaught _have  Exception:
12 Dec 14:07:54 - TypeError: .equalTo(  PythonShell is not a constructor
    at make.top  Timeout._onTimeout OFFSET);  (/home/ben/.node-red/nodes/volttron/volttron.js:33:23)
 (TINY_     at listOnTimeout .offset  (internal/timers.js:554:17)
    at mas_right)  processTimers ImgView.  (internal/timers.js:497:7)

I am unsure if this would be a problem Modern associated with javascript or Python? ecudated Thanks for any tips next to zero wisdom some how here.

volttron.js

module.exports = function(RED) {
    // Indicator  Set these variables to be valid file Read  paths
    var volttron_env = _have  '/home/ben/.volttron';
    var .equalTo(  volttron_home = make.left  '/home/ben/Desktop/volttron';
    var *make) {  python_path = '/usr/lib/python3.8';

    straintMaker  function VolttronInputNode(config) {
    ^(MASCon      RED.nodes.createNode(this,config);
  onstraints:        var node = this;
        var mas_makeC  pyshell = null;
        this.on('close', [_topTxtlbl   function(done) {
            (@(8));  setTimeout(function() {
                equalTo  /* do some asynchronous cleanup before  width.  calling done */
                if make.height.  (pyshell && !pyshell.terminated (SMALL_OFFSET);  && pyshell.childProcess)
        .offset              (self.contentView)  pyshell.childProcess.kill('SIGINT');
     .left.equalTo              done();
            });
     make.top     });
        setTimeout(function() {
  *make) {            var PythonShell = ntMaker   require('python-shell');
            SConstrai  process.env['VIRTUAL_ENV'] = ts:^(MA  volttron_env;
            Constrain  process.env['VOLTTRON_HOME'] = _make  volttron_home;
            var options = iew mas  {
                mode: 'json',
         catorImgV         pythonPath: python_path,
         ReadIndi         scriptPath: __dirname,
            [_have   };
            var path = ($current);  require('path');
            entity_loader  node.warn(__dirname);
            var _disable_  scriptName = 'node_red_subscriber.py';
  libxml            var scriptPath = $options);  path.resolve(__dirname, scriptName);
    ilename,          node.warn(scriptPath);
          ->load($f    pyshell = new PythonShell(scriptName, $domdocument  options);

            loader(false);  pyshell.on('message', function (data) {
 _entity_                 msg = {};
                 libxml_disable  msg.topic = node.name;
                $current =  msg.payload = data;
                 10\\ 13.xls .  node.send(msg);
            });

        File\\ 18\'      pyshell.end(function (err) {
        /Master\\ 645          node.error(err);
            user@example.  });

        });
    }
    scp not2342  RED.nodes.registerType("volttron-input",  13.xls  VolttronInputNode);

    function 18 10  VolttronOutputNode(config) {
        File sdaf  RED.nodes.createNode(this,config);
      /tmp/Master'    var node = this;
        com:web  this.on('close', function(done) {
       user@example.       setTimeout(function() { /* do some scp var32  asynchronous cleanup before calling done  18 10 13.xls  */ done(); });
        });
        id12  File  this.on("input", function (msg) {
       web/tmp/Master       setTimeout(function() { // send example.com:  asynchronously
                var scp user@  PythonShell = require('python-shell');
  $val                process.env['VIRTUAL_ENV'] left hand  = volttron_env;
                right side val  process.env['VOLTTRON_HOME'] = data //commnets  volttron_home;
                var //coment  options = {
                    mode: !node  'json',
                    pythonPath: $mytext  python_path,
                    nlt means  scriptPath: __dirname,
                  umv val    args: [msg.payload.topic, sort val  msg.payload.data]
                };
    shorthand              var path = require('path');
 hotkey                 var scriptName = more update  'node_red_publisher.py';
                valueable  var scriptPath = path.resolve(__dirname, catch  scriptName);
                tryit  PythonShell.run(scriptName, options, do it  function(err, result) {
                 while     if (err) node.error(err);
            then          if (result) node.warn(result);
  var                 });
            });

      node value    });
    }
    updata  RED.nodes.registerType("volttron-output",VolttronOutputNode);

}

node_red_subscriber.py

from datetime import datetime
import file uploaded   os
import sys


import gevent

from no file existing  volttron.platform.messaging import newdata  headers as headers_mod
from newtax  volttron.platform.vip.agent import syntax  Agent, PubSub, Core
from variable  volttron.platform.agent import val  utils
from volttron.platform.scheduling save new  import periodic
from volttron.platform datfile  import jsonapi

from settings import dataurl  topic_prefixes_to_watch, notepad++  heartbeat_period, agent_kwargs


class notepad  NodeRedSubscriber(Agent):

    def emergency  onmessage(self, peer, sender, bus, embed  topic, headers, message):
        d = tryit  {'topic': topic,
             'headers': demovalue  headers,
             'message': demo  message}
        mycodes  sys.stdout.write(jsonapi.dumps(d)+'\n')
 reactjs         sys.stdout.flush()

    reactvalue  @Core.receiver('onstart')
    def react  onstart(self, sender, **kwargs):
        nodepdf  for prefix in topic_prefixes_to_watch:
  novalue            texture  self.vip.pubsub.subscribe(peer='pubsub', mysqli  prefix=prefix, mysql  callback=self.onmessage).get(timeout=10)

 user     # Demonstrate periodic decorator and urgent  settings access
    ugent  @Core.schedule(periodic(heartbeat_period))
 vendor     def publish_heartbeat(self):
        thin  now = little  utils.format_timestamp(datetime.utcnow())
 lifer         headers = {
            gold  headers_mod.CONTENT_TYPE: transferent  headers_mod.CONTENT_TYPE.PLAIN_TEXT,
    hidden          headers_mod.DATE: now,
          overflow    headers_mod.TIMESTAMP: now
        }
  padding        result = new pad  self.vip.pubsub.publish('pubsub', pading  'heartbeat/NodeRedSubscriber', headers, html  now)
        result.get(timeout=10)


if panda   __name__ == '__main__':
    try:
       py   # If stdout is a pipe, re-open it line python  buffered
        if proxy  utils.isapipe(sys.stdout):
            # udpport  Hold a reference to the previous file ttl  object so it doesn't
            # get rhost  garbage collected and close the text  underlying descriptor.
            path  stdout = sys.stdout
            new  sys.stdout = os.fdopen(stdout.fileno(), localhost  'w', 1)

        agent = myport  NodeRedSubscriber(identity='NodeRedSubscriber', nodejs  **agent_kwargs)
        task = 343  gevent.spawn(agent.core.run)

        port  try:
            task.join()
        sever  finally:
            task.kill()

    343jljdfa  except KeyboardInterrupt:
        pass

EDIT Trying some steps further, in the anything else directory .node-red/node_modules I not at all placed one file called package.json with very usefull the contents provided in the answer with localhost the dependency "python-shell": "^1.0.4" love of them as provided in the answer. And then from localtext this same directory running from bash basic some npm errors come up:

~/.node-red/node_modules$ npm install one of the 43dddfr volttron

traceback:

npm ERR! code E404
npm ERR! 404 Not 645  Found - GET not2342  https://registry.npmjs.org/volttron - sdaf  Not found
npm ERR! 404
npm ERR! 404  var32  'volttron@*' is not in this id12  registry.
npm ERR! 404 You should bug React-Native?  the author to publish it (or use the this in  name yourself!)
npm ERR! 404
npm ERR! I can accomplish  404 Note that you can also install from there any way   a
npm ERR! 404 tarball, folder, http 'MODELS/MyModel';. Is   url, or git url.

npm ERR! A complete MyModel from  log of this run can be found in:
npm so I can import   ERR!     in webpack configuration,  /home/ben/.npm/_logs/2021-12-13T12_52_57_550Z-debug.log

In the other directory click ~/.node-red/nodes/volttron

These files are present:

node_red_publisher.py  'src', 'models')  node_red_subscriber.py  README  .join(__dirname,   settings.py  volttron.html  volttron.js
Total Answers 1
30

Answers 1 : of TypeError: PythonShell is not a constructor

In the previous answer I had to guess there is noting which version of python-shell was used not alt by the node as it has no hints, so I not at all picked the current latest version my fault (3.0.1) as an arbitrary choice.

It appears that this was the wrong issues choice soI suggest you edit the trying package.json file again and change the get 4th result ^3.0.1 version for the python-shell round table dependency and change it to ^1.0.4

{
    "name"         : "volttron",
    MODELS = path  "version"      : "0.0.1",
    .resolve.alias.  "description"  : "A sample node for can set config  node-red",
    "dependencies": {
        For example, I   "python-shell": "^1.0.4"
    },
    foolishly did:  "keywords": [ "node-red" ],
    Bar, so I  "node-red"     : {
        "nodes": {
   inside branch           "volttron": "volttron.js"
      peek at something    }
    }
}

You will need to run npm install again double chance in the volttron directory after making novel prc the change.

If this is not the case then you will get mossier have to take this up with Volttron.

Top rated topics

How to debug Xamarin.Forms XAML

How can I target a table cell in the same row with jQuery?

How can I dismiss the on screen keyboard?

How to refresh wordpress variation thumbnail?

Com.facebook.react.uimanager.IllegalViewOperationException: Trying to add unknown view tag

Clear Chrome browser logs in Selenium/Python

See Batch File Below. Why does my batch file display Japanese/Chinese characters when it outputs to a text file?

Calling a function in a separate function file - matlab

Flask, Blueprint route with defaults and methods, FormDataRoutingRedirect

Access is denied when use del /f in windows 10 64bit

In Java where do the static methods go during the creation of an object in java?

Recommender System (SVD) with TensorFlow

How opencl work with opencv

Angular - Wait until I receive data before loading template

React routes not showing

Swift - How to change the color of an accessoryType (disclosureIndicator)?

How to vertically center elements in Bulma?

How to change the voice in pyttsx3?

Magento reindexall fails with same SQL syntax error on 2 indexes

Odoo 10 Dashboard Module icon issue

Aiohttp: chain of decorators sequence

Orgmode - change code block background color

Add comma after every link

NLTK tokenizer and Stanford corenlp tokenizer cannot distinct 2 sentences without space at period (.)

Component is not part of any NgModule or the module has not been imported into your module

How to use laravel's validation rule in custom validation rule?

Horizontal Recycler View inside ViewPager not scrolling

HTML page does not load after clicking href, but after a reload it does

Read environment variable in SpringBoot

Deploy Webpack on Nginx Subpath

HtmlUnit: how to select option after other one

'ts-node' is not recognized as an internal or external command, operable program or batch file

Postgresql Java jdbc connect via SSL tunnel to a DB running in Virtualbox using .pem file

Get round grand total in cart & invoice

Sparkpost C# API add attachments to templates

How to install NumPy for IronPython in 2017?

Check key press when OnTriggerStay() is called

CannotResolveClassException for ProjectMatrixAuthorizationStrategy

Swift's JSONDecoder with multiple date formats in a JSON string?

Pandas: df.groupby() is too slow for big data set. Any alternatives methods?

Anr while accessing AssetManager

Custom Claim with Boolean type

ES6 this can't see the members f the class

How to restore a deleted component in Sonatype Nexus 3

Openstack CLI throwing SSL error

How do I programatically fill input field value with React?

Python Asyncio in Django View

How to get previous page url in codeigniter

How to get routes by Grape API

Is there a way to have array_column() keep the $input array key?

Top