Discussion:
[Eric] Run my project
c***@posteo.jp
2018-11-10 23:42:27 UTC
Permalink
Hi,

I was using Python3 on Debian via bash and vim.
My project runs well on bash. But I am not able to run it via Eric.

The project folder is
~/share/work/Feedybus/

The code (py-files) is in
~/share/work/Feedybus/feedybus

There are e.g. this files in
~/share/work/Feedybus/__init__.py
~/share/work/Feedybus/__main__.py

I start the application via the script
~/share/work/Feedybus/Feedybus.sh

which content is

#!/bin/bash

cd ~/share/work/Feedybus
python3 -m feedybus
exit

So how can I reproduce this with Eric?
I created a project via eric and all relevant files are in that project.

How should I setup "Project Directory" and "Main Script" in the
"Project Properties"?

When I click on "Run Project" another dialogs comes up and ask me
about "Comamndline", "Working directory", "Environment".
I am not sure what I should put in this fields.

When running the project with eric I receive an error about an
releative import in my __main__.py file.

The debugged program raised the exception unhandled SystemError
"Parent module '' not loaded, cannot perform relative import"
File: /home/user/share/work/Feedybus/feedybus/__main__.py, Line: 12

This is line 12
from .application import FeedybusApplication
Detlev Offenbach
2018-11-11 10:09:05 UTC
Permalink
Post by c***@posteo.jp
Hi,
I was using Python3 on Debian via bash and vim.
My project runs well on bash. But I am not able to run it via Eric.
The project folder is
~/share/work/Feedybus/
The code (py-files) is in
~/share/work/Feedybus/feedybus
There are e.g. this files in
~/share/work/Feedybus/__init__.py
~/share/work/Feedybus/__main__.py
I start the application via the script
~/share/work/Feedybus/Feedybus.sh
which content is
#!/bin/bash
cd ~/share/work/Feedybus
python3 -m feedybus
exit
So how can I reproduce this with Eric?
I created a project via eric and all relevant files are in that project.
How should I setup "Project Directory" and "Main Script" in the
"Project Properties"?
The "Project Directory" should be ~/share/work/Feedybus. The file containing the entry
point into your program (i.e. the main script) should be entered into the "Main Script"
entry. This script is executed by eric's debugger backend. In your case this will probably be
the __main__.py script.
Post by c***@posteo.jp
When I click on "Run Project" another dialogs comes up and ask me
about "Comamndline", "Working directory", "Environment".
I am not sure what I should put in this fields.
This gives the possibility to run the project with a non-default setup (e.g. with specific
commandline arguments or a different interprter/virtual environment or in a specific
working directory).
Post by c***@posteo.jp
When running the project with eric I receive an error about an
releative import in my __main__.py file.
The debugged program raised the exception unhandled SystemError
"Parent module '' not loaded, cannot perform relative import"
File: /home/user/share/work/Feedybus/feedybus/__main__.py, Line: 12
This is line 12
from .application import FeedybusApplication
Running your script with python3 -m does some setup in the background that makes
relative imports work. However, running the main script directly (i.e. without -m) doesn't
do that and they will fail. To overcome this and make your script more universally usable,
you should tinker with sys.path like that in __init__.py.

import os, sys; sys.path.append(os.path.dirname(os.path.realpath(__file__)))

For more details about this situation see stackoverflow[1] .

Detlev
--
Detlev Offenbach
***@die-offenbachs.de

--------
[1] https://stackoverflow.com/questions/16981921/relative-imports-in-python-3#16985066
Loading...