On 2019-12-13 8:53 a.m., paul Marlin wrote:
This is a variation of the many questions complaining that one can't
import exotic external modules, even though the import works from the
terminal. The many answers suggest fixing the execute command in the
Build screen. The difference here is that I can't import a module from
my own machine, but that it works at both the terminal and Idle. I
suspect my problem is a PATH issue. Geany seems like a very nice
editor/IDE. But if I can't import even my own modules, it's not very
useful.
My simplified directory structure:
py - root for storing python MODULES (apps) and a module of user defined
functions (included in PYTHONPATH)
----| main
main.py
----| common (for storing functions accessible by multiple modules
fun.py
The code:
_main.py_
from common import fun
fun.test()_
_
_fun.py_
def test():
print('testing')
_Ouput from Idle_
========================== RESTART: C:/py/test/main.py
=========================
testing
>>> _
_
The path shown `C:/py/test/main.py` isn't how you described your layout,
it should be `C:/py/main/main.py` according to how you described it.
_Output from Geany_
ModuleNotFoundError: No module named 'py'
Original exception was:
Traceback (most recent call last):
File "test.py", line 1, in <module>
from py.common import fun
ModuleNotFoundError: No module named 'py'
I'm not sure exactly what you're going for, but often you will have your
main script in the top level, and then put common/library code in a
package directory, with an (often empty) `__init__.py` file. Something
like this:
- py
- main.py
- common
- __init__.py
- fun.py
If you lay it out like this, it "Just Works" out of the box with Geany's
execute command for `main.py`, without messing with any path variables
or anything.
If you want to leave it where `main.py` is in a directory that is a
sibling of your common/library package, you will probably have to mess
with paths and/or use some kind of relative imports.
I don't think your problem is with Geany as much as with trying to
understand Python's quite complicated import mechanisms/rules/conventions.
Hope that helps.
Regards,
Matthew Brush
_______________________________________________
Users mailing list
[email protected]
https://lists.geany.org/cgi-bin/mailman/listinfo/users