In my simulation setup, each robot controller imports the python library https://github.com/ethereum/web3.py which interfaces with the ethereum blockchain. I am using the argos-python wrapper https://github.com/KenN7/argos-python
Clearly, web3.py does not appreciate that each robot controller is importing it within the same ARGoS process.
Code: Select all
ImportError: Interpreter change detected - this module can only be loaded into one interpreter per process.
When I google this error, it seems that oftentimes software modules have a configuration flag such as "single-interpreter = true". Is there a similar flag in ARGoS, or a way to fix issue this within ARGoS?
Alternative higher level solutions would be forking/spawning processes in Python and have the controllers query them for the interaction (a wrapper for web3 without importing web3). It is not the ideal solution, if it is possible to fix the issue at the ARGoS level.