Closed SturmB closed 4 years ago
A restart of keypirinha should fix the issue.
Did you install and deinstall https://github.com/Fuhrmann/keypirinha-faker-data before you tried to install this package by any chance? This is how I can reproduce you issue. The Fakerdata package tries to import the dateutil library from within its own package, but the package is missing the six library, so this error occurs:
2020-02-17 18:34:12.875 [i] PackageControl.PackageControl: Installed package 'keypirinha-faker-data'
2020-02-17 18:34:14.488 [i] Python: Traceback (most recent call last):
2020-02-17 18:34:14.488 [i] Python: File "keypirinha_private.py", line 356, in reload_module
2020-02-17 18:34:14.488 [i] Python: File "lib\importlib\__init__.py", line 126, in import_module
2020-02-17 18:34:14.488 [i] Python: File "<frozen importlib._bootstrap>", line 994, in _gcd_import
2020-02-17 18:34:14.488 [i] Python: File "<frozen importlib._bootstrap>", line 971, in _find_and_load
2020-02-17 18:34:14.488 [i] Python: File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
2020-02-17 18:34:14.488 [i] Python: File "<frozen importlib._bootstrap>", line 656, in _load_unlocked
2020-02-17 18:34:14.488 [i] Python: File "<frozen importlib._bootstrap>", line 626, in _load_backward_compatible
2020-02-17 18:34:14.488 [i] Python: File "keypirinha_private.py", line 246, in load_module
2020-02-17 18:34:14.488 [i] Python: File "R:\tmp\Keypirinha\portable\Profile\InstalledPackages\Fakerdata.keypirinha-package\fakerdata.py", line 11, in <module>
2020-02-17 18:34:14.488 [i] Python: File "R:\tmp\Keypirinha\portable\Profile\InstalledPackages\Fakerdata.keypirinha-package\lib\faker\__init__.py", line 4, in <module>
2020-02-17 18:34:14.488 [i] Python: from faker.factory import Factory
2020-02-17 18:34:14.488 [i] Python: File "R:\tmp\Keypirinha\portable\Profile\InstalledPackages\Fakerdata.keypirinha-package\lib\faker\factory.py", line 10, in <module>
2020-02-17 18:34:14.488 [i] Python: from faker.config import DEFAULT_LOCALE, PROVIDERS, AVAILABLE_LOCALES
2020-02-17 18:34:14.488 [i] Python: File "R:\tmp\Keypirinha\portable\Profile\InstalledPackages\Fakerdata.keypirinha-package\lib\faker\config.py", line 14, in <module>
2020-02-17 18:34:14.488 [i] Python: AVAILABLE_LOCALES = find_available_locales(PROVIDERS)
2020-02-17 18:34:14.488 [i] Python: File "R:\tmp\Keypirinha\portable\Profile\InstalledPackages\Fakerdata.keypirinha-package\lib\faker\utils\loading.py", line 32, in find_available_locales
2020-02-17 18:34:14.488 [i] Python: provider_module = import_module(provider_path)
2020-02-17 18:34:14.488 [i] Python: File "lib\importlib\__init__.py", line 126, in import_module
2020-02-17 18:34:14.488 [i] Python: File "R:\tmp\Keypirinha\portable\Profile\InstalledPackages\Fakerdata.keypirinha-package\lib\faker\providers\address\__init__.py", line 6, in <module>
2020-02-17 18:34:14.488 [i] Python: from .. import date_time
2020-02-17 18:34:14.488 [i] Python: File "R:\tmp\Keypirinha\portable\Profile\InstalledPackages\Fakerdata.keypirinha-package\lib\faker\providers\date_time\__init__.py", line 11, in <module>
2020-02-17 18:34:14.488 [i] Python: from dateutil import relativedelta
2020-02-17 18:34:14.488 [i] Python: File "R:\tmp\Keypirinha\portable\Profile\InstalledPackages\Fakerdata.keypirinha-package\lib\dateutil\relativedelta.py", line 8, in <module>
2020-02-17 18:34:14.488 [i] Python: from six import integer_types
2020-02-17 18:34:14.488 [i] Python: ModuleNotFoundError: No module named 'six'
Deinstalling fakerdata removes the package. But even though the fakerdata plugin itself is unloaded, its imports are not. Keypirinha-Time also uses the dateutil library. When it tries to import dateutil it finds the already partly loaded dateutil from fakerdata, which I think causes your error:
2020-02-17 18:34:22.122 [i] PackageControl.PackageControl: Removed package: keypirinha-faker-data
2020-02-17 18:34:23.621 [i] Unloaded package: Fakerdata
2020-02-17 18:34:30.571 [i] PackageControl.PackageControl: Installed package 'Keypirinha-Time'
2020-02-17 18:34:32.083 [i] Python: Traceback (most recent call last):
2020-02-17 18:34:32.083 [i] Python: File "keypirinha_private.py", line 356, in reload_module
2020-02-17 18:34:32.083 [i] Python: File "lib\importlib\__init__.py", line 126, in import_module
2020-02-17 18:34:32.083 [i] Python: File "<frozen importlib._bootstrap>", line 994, in _gcd_import
2020-02-17 18:34:32.083 [i] Python: File "<frozen importlib._bootstrap>", line 971, in _find_and_load
2020-02-17 18:34:32.083 [i] Python: File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
2020-02-17 18:34:32.083 [i] Python: File "<frozen importlib._bootstrap>", line 656, in _load_unlocked
2020-02-17 18:34:32.083 [i] Python: File "<frozen importlib._bootstrap>", line 626, in _load_backward_compatible
2020-02-17 18:34:32.083 [i] Python: File "keypirinha_private.py", line 246, in load_module
2020-02-17 18:34:32.083 [i] Python: File "R:\tmp\Keypirinha\portable\Profile\InstalledPackages\Time.keypirinha-package\time.py", line 14, in <module>
2020-02-17 18:34:32.083 [i] Python: File "<frozen importlib._bootstrap>", line 971, in _find_and_load
2020-02-17 18:34:32.083 [i] Python: File "<frozen importlib._bootstrap>", line 951, in _find_and_load_unlocked
2020-02-17 18:34:32.084 [i] Python: File "<frozen importlib._bootstrap>", line 894, in _find_spec
2020-02-17 18:34:32.084 [i] Python: File "<frozen importlib._bootstrap_external>", line 1157, in find_spec
2020-02-17 18:34:32.084 [i] Python: File "<frozen importlib._bootstrap_external>", line 1131, in _get_spec
2020-02-17 18:34:32.084 [i] Python: File "<frozen importlib._bootstrap_external>", line 1112, in _legacy_get_spec
2020-02-17 18:34:32.084 [i] Python: File "<frozen importlib._bootstrap>", line 441, in spec_from_loader
2020-02-17 18:34:32.084 [i] Python: File "<frozen importlib._bootstrap_external>", line 544, in spec_from_file_location
2020-02-17 18:34:32.084 [i] Python: FileNotFoundError: [Errno 2] No such file or directory: 'R:\\tmp\\Keypirinha\\portable\\Profile\\InstalledPackages\\Fakerdata.keypirinha-package'
Funfact: Installing Keypirinha-Time first, then installing Fakerdata should work until the next restart of keypirinha because Time loads dateutil correctly, so Fakerdata can use it. But after a restart of keypirinha packages are loaded alphabetically so Time is loaded after Fakerdata.
Let me know if restarting keypirinha without Fakerdata installed helps :)
You nailed it. 🌟
I was going through the list of Keypirinha plugins in alphabetical order and installing the ones that I thought might be useful. As you noted, I ran into the Fakerdata issue, which I've already reported on the dev's repo.
For now, I'll just refrain from installing keypirinha-faker-data
until they can fix the error so I can use Keypirinha-Time
. (Fakerdata isn't as important to me right now. 😉)
Thanks for taking the time to discover the underlying issue here, I greatly appreciate it!
I attempted to install this via
PackageControl
but was greeted with the following in Keypirinha's console: