-
Notifications
You must be signed in to change notification settings - Fork 767
Closed
Description
Environment
- Pythonnet version: 2.5.1
- Python version: 3.7.9
- Operating System: Windows 10
Details
- Describe what you were trying to get done.
pythonnet overwrites the python's __import__ routine, but does not implement python's signature precisely:
original python's signature is
__import__(name, globals=None, locals=None, fromlist=(), level=0)Most other python modules call the name parameter as positional: __import__("foo", ...
Some packages (e.g. kivy) use __import__ as
__import__(
name='{2}.{0}.{1}'.format(basemodule, modulename, base),
globals=globals(), locals=locals(), fromlist=[modulename], level=0
)i.e. the name argument used as keyword argument in the call. Both calls are valid in python's __import__, but fail at the overwritten __import__ with
TypeError: __import__() takes at least 1 argument (0 given)A hotfix is to alter the other modules code to
__import__(
'{2}.{0}.{1}'.format(basemodule, modulename, base),
globals=globals(), locals=locals(), fromlist=[modulename], level=0
)but the broken code is within pythonnet.
Metadata
Metadata
Assignees
Labels
No labels