python relative import

This commit is contained in:
Ciro Santilli 六四事件 法轮功
2020-10-20 01:00:00 +00:00
parent 27fc5deefe
commit 3990333f3d
8 changed files with 51 additions and 0 deletions

View File

@@ -18506,6 +18506,8 @@ The only `Impl` used appears to be `O3CPUImpl`? This is explicitly instantiated
template class O3ThreadContext<O3CPUImpl>;
....
see also: https://stackoverflow.com/questions/64420547/in-gem5-how-do-i-know-the-specific-location-of-the-class/64423633#64423633
Unlike in `SimpleThread` however, `O3ThreadContext` does not contain the register data itself, e.g. `O3ThreadContext::readIntRegFlat` instead forwards to `cpu`:
....
@@ -20912,6 +20914,19 @@ link:rootfs_overlay/lkmc/python/unittest_find/[] contains examples to test how t
* https://stackoverflow.com/questions/1732438/how-do-i-run-all-python-unit-tests-in-a-directory
* https://stackoverflow.com/questions/46976256/recursive-unittest-discovery-with-python3-and-without-init-py-files
====== Python relative imports
link:rootfs_overlay/lkmc/python/relative_import/[] contains examples to test how how to do relative imports in Python.
This subject is impossible to understand.
Related questions:
* https://stackoverflow.com/questions/16981921/relative-imports-in-python-3
* https://stackoverflow.com/questions/14132789/relative-imports-for-the-billionth-time
* https://stackoverflow.com/questions/21490860/relative-imports-with-unittest-in-python
* https://stackoverflow.com/questions/714063/importing-modules-from-parent-folder
===== Build and install the interpreter
Buildroot has a Python package that can be added to the guest image:

View File

@@ -0,0 +1 @@
https://cirosantilli.com/linux-kernel-module-cheat#python-relative-imports

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env python
import myfile
assert myfile.a == 1
b = myfile.a + 1

View File

@@ -0,0 +1 @@
a = 1

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env python
import myfile
import mydir.myfile_user
assert myfile.a == 1
assert mydir.myfile_user.b == 2

View File

@@ -0,0 +1,20 @@
#!/usr/bin/env bash
set -eux
# myfile_user works from all directories.
./myfile_user.py
cd ..
relative_import/myfile_user.py
cd relative_import/mydir
../myfile_user.py
cd ..
# TODO any better way to run mydir/myfile_user.py?
# ./mydir/myfile_user.py
#Traceback (most recent call last):
# File "./mydir/myfile_user.py", line 3, in <module>
# import myfile
#ModuleNotFoundError: No module named 'myfile'
python -m mydir.myfile_user