Проблемы с относительным импортом в модулях переменных #52

Closed
opened 3 years ago by icerider · 1 comments
Collaborator
from .func import *
Traceback (most recent call last):
  File "/var/calculate/bin/run_templates.py", line 56, in <module>                     main()                                                                           File "/var/calculate/bin/run_templates.py", line 30, in main                         datavars = Datavars(variables_path='/var/calculate/calculate-utils-4-lib/calculate/vars')
  File "/var/calculate/calculate-utils-4-lib/calculate/variables/loader.py", line 748, in __init__
    self._loader.load_from_profile()
  File "/var/calculate/calculate-utils-4-lib/calculate/variables/loader.py", line 548, in load_from_profile
    self.repository_map = self._get_repository_map(self.datavars)
  File "/var/calculate/calculate-utils-4-lib/calculate/variables/loader.py", line 637, in _get_repository_map
    for repo in datavars.os.gentoo.repositories}
  File "/var/calculate/calculate-utils-4-lib/calculate/variables/datavars.py", line 815, in __getattr__
    return variable.get_value().get_table()
  File "/var/calculate/calculate-utils-4-lib/calculate/variables/datavars.py", line 732, in get_value
    self.update_value()
  File "/var/calculate/calculate-utils-4-lib/calculate/variables/datavars.py", line 628, in update_value
    str(error)))
    
calculate.variables.datavars.VariableError: os.gentoo.repositories: can not calculate using dependencies: os.gentoo.config reason: Can not load datavars package: No module named '.var'
``` from .func import * ``` ``` Traceback (most recent call last): File "/var/calculate/bin/run_templates.py", line 56, in <module> main() File "/var/calculate/bin/run_templates.py", line 30, in main datavars = Datavars(variables_path='/var/calculate/calculate-utils-4-lib/calculate/vars') File "/var/calculate/calculate-utils-4-lib/calculate/variables/loader.py", line 748, in __init__ self._loader.load_from_profile() File "/var/calculate/calculate-utils-4-lib/calculate/variables/loader.py", line 548, in load_from_profile self.repository_map = self._get_repository_map(self.datavars) File "/var/calculate/calculate-utils-4-lib/calculate/variables/loader.py", line 637, in _get_repository_map for repo in datavars.os.gentoo.repositories} File "/var/calculate/calculate-utils-4-lib/calculate/variables/datavars.py", line 815, in __getattr__ return variable.get_value().get_table() File "/var/calculate/calculate-utils-4-lib/calculate/variables/datavars.py", line 732, in get_value self.update_value() File "/var/calculate/calculate-utils-4-lib/calculate/variables/datavars.py", line 628, in update_value str(error))) calculate.variables.datavars.VariableError: os.gentoo.repositories: can not calculate using dependencies: os.gentoo.config reason: Can not load datavars package: No module named '.var' ```
derzeitgeist closed this issue 3 years ago
icerider reopened this issue 3 years ago
Poster
Collaborator

calculate/vars/main/os/init.py

from calculate.variables.datavars import (
    Variable,
    Namespace,
    StringType,
    Calculate
    )
from calculate.vars.main.os.func import get_arch_machine, get_arch_gentoo


with Namespace("arch"):
    Variable("machine", type=StringType,
             source=Calculate(get_arch_machine))

    Variable("gentoo", type=StringType,
             source=Calculate(get_arch_gentoo, ".machine"))`

Абсолютный импорт не вызвает ошибок, если же использовать .func

Traceback (most recent call last):
  File "/var/calculate/.project/trunk4/calculate-lib/calculate/variables/loader.py", line 791, in _load_package
    self._loader.load_variables_package(package_name)
  File "/var/calculate/.project/trunk4/calculate-lib/calculate/variables/loader.py", line 533, in load_variables_package
    self._fill_from_package(package_namespace, directory_path, package)
  File "/var/calculate/.project/trunk4/calculate-lib/calculate/variables/loader.py", line 625, in _fill_from_package
    directory_node.name))
  File "/var/calculate/.project/trunk4/calculate-lib/calculate/variables/loader.py", line 615, in _fill_from_package
    spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "calculate/vars/main/os/__init__.py", line 8, in <module>
    from .func import get_arch_machine, get_arch_gentoo
ModuleNotFoundError: No module named '.main'
calculate/vars/main/os/__init__.py ``` from calculate.variables.datavars import ( Variable, Namespace, StringType, Calculate ) from calculate.vars.main.os.func import get_arch_machine, get_arch_gentoo with Namespace("arch"): Variable("machine", type=StringType, source=Calculate(get_arch_machine)) Variable("gentoo", type=StringType, source=Calculate(get_arch_gentoo, ".machine"))` ``` Абсолютный импорт не вызвает ошибок, если же использовать .func ``` Traceback (most recent call last): File "/var/calculate/.project/trunk4/calculate-lib/calculate/variables/loader.py", line 791, in _load_package self._loader.load_variables_package(package_name) File "/var/calculate/.project/trunk4/calculate-lib/calculate/variables/loader.py", line 533, in load_variables_package self._fill_from_package(package_namespace, directory_path, package) File "/var/calculate/.project/trunk4/calculate-lib/calculate/variables/loader.py", line 625, in _fill_from_package directory_node.name)) File "/var/calculate/.project/trunk4/calculate-lib/calculate/variables/loader.py", line 615, in _fill_from_package spec.loader.exec_module(module) File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "calculate/vars/main/os/__init__.py", line 8, in <module> from .func import get_arch_machine, get_arch_gentoo ModuleNotFoundError: No module named '.main' ```
derzeitgeist closed this issue 3 years ago
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: calculate/calculate-utils-4-lib#52
Loading…
There is no content yet.