When executing python3 (Python 3.6.8) script on a local directory, it works well, but when running sbatch job in slurm, complains about certifi.
python3 -m pip install certifi Defaulting to user installation because normal site-packages is not writeable Requirement already satisfied: certifi in /usr/local/lib/python3.6/site-packages (2020.12.5)
After adding to the python code this:
import sys import os sys.path.append(os.getcwd())
or this:
import sys import os module_path = os.path.abspath(os.getcwd()) if module_path not in sys.path: sys.path.append(module_path)
the same error occurs. It seems that certifi is installed.
pip show certifi Name: certifi Version: 2020.12.5 Summary: Python package for providing Mozilla's CA Bundle. Home-page: https://certifiio.readthedocs.io/en/latest/ Author: Kenneth Reitz Author-email: me@kennethreitz.com License: MPL-2.0 Location: /usr/local/lib/python3.6/site-packages Requires: Required-by: requests
The error after running python code (without having the line ‘import certifi’ in python code):
Traceback (most recent call last): File "/home/username/test/test.py", line 19, in <module> from textattack.augmentation import WordNetAugmenter, EmbeddingAugmenter, EasyDataAugmenter, CharSwapAugmenter File "/home/username/.local/lib/python3.6/site-packages/textattack/__init__.py", line 12, in <module> from . import ( File "/home/username/.local/lib/python3.6/site-packages/textattack/attack_recipes/__init__.py", line 21, in <module> from .attack_recipe import AttackRecipe File "/home/username/.local/lib/python3.6/site-packages/textattack/attack_recipes/attack_recipe.py", line 9, in <module> from textattack.shared import Attack File "/home/username/.local/lib/python3.6/site-packages/textattack/shared/__init__.py", line 11, in <module> from . import utils File "/home/username/.local/lib/python3.6/site-packages/textattack/shared/utils/__init__.py", line 1, in <module> from .install import * File "/home/username/.local/lib/python3.6/site-packages/textattack/shared/utils/install.py", line 9, in <module> import requests File "/home/username/.local/lib/python3.6/site-packages/requests/__init__.py", line 118, in <module> from . import utils File "/home/username/.local/lib/python3.6/site-packages/requests/utils.py", line 25, in <module> from . import certs File "/home/username/.local/lib/python3.6/site-packages/requests/certs.py", line 15, in <module> from certifi import where ModuleNotFoundError: No module named 'certifi'
The error (with having the line ‘import certifi’ in python code):
Traceback (most recent call last): File "/home/username/projecttest_LR_attack/LR_attack.py", line 17, in <module> import certifi ModuleNotFoundError: No module named 'certifi'
What could be the solution to the issue?
Advertisement
Answer
Are the same modules installed on the compute nodes as locally? You may need to check with the Slurm admins.