Я очень новичок в Linux в целом, и мне поручено управление сервером.По причинам я должен был создать виртуальную среду Python под моим пользователем.
файловые каталоги как таковые:
~
/python_venv
/scripts
/data_curation
-master.py
/mods
-file1.py
-file2.py
/other
-file3.py
/otherscripts
-file4.py
^ в основном, python venv находится в каталоге ~.все остальное размещено в scripts / data_curation и scripts / otherscripts.
Мне было любопытно две вещи.1) есть ли способ, которым я могу просто запустить каждый файл из командной строки без необходимости вручную активировать python venv?например, что-то вроде вставки в файлы .py строки, которая сама вызывает venv по указанному пути?
2) Какой самый простой способ убедиться, что каждый из этих файлов имеет доступ друг к другу?то есть, если бы я хотел импортировать file3.py в file4.py, как бы мне это сделать?
Я пытался использовать importlib, но получаю эту ошибку:
(python) [user@server]$ python scripts/data_curation/mods/file1.py
scripts/data_curation/device_functions/epon_nokia.py
ModuleSpec(name='file3', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f66399f9a90>, origin='scripts/data_curation/other/file3.py')
__init__.py
scripts/data_curation/other/__init__.py
ModuleSpec(name='__init__', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f661a7242b0>, origin='scripts/data_curation/other/__init__.py')
__pycache__
scripts/data_curation/other/__pycache__
Traceback (most recent call last):
File "scripts/data_curation/file1.py", line 21, in <module>
module = imputil.module_from_spec(spec)
File "<frozen importlib._bootstrap>", line 568, in module_from_spec
AttributeError: 'NoneType' object has no attribute 'loader'