I'm facing a peculiar issue with PyCharm and Python imports. I have a well-organized directory with all my "stable" code, and a separate area for local scripts that are more experimental and specific. Despite this, I want these local scripts to use the standard, solid libraries I've developed. This is how my repository are organize
└─▶ $ tree codeDir codeDir ├── README.md ├── bambooLocalScript │ ├── countProcessedClass.sh │ ├── generate_ApexTestCatalog │ │ ├── apex_src_test_heuristic_split.py │ │ ├── apex_src_test_heuristic_split_progressive.py │ │ ├── generate-apex-test-mapping.sh │ │ └── process_catalog_trunk_sort.py │ ├── list_large_files.py │ └── prettierRunCountList.sh └── script ├── enelPyLib │ ├── __init__.py │ ├── sfUtility.py │ └── ... ├── epm.py ├── fileGitExtract.py └── ... To achieve this, I added the following code at the beginning of my local scripts:
# apex_src_test_heuristic_split_progressive.py import os import sys # Add the path of the script folder to PYTHONPATH script_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', 'script')) if script_path not in sys.path: sys.path.insert(0, script_path) try: from myPyLib import sfUtility as sfUtil except ModuleNotFoundError as e: print(f"Error: {e}. Make sure the path is correct and that the directory contains a __init__.py file.") sys.exit(1) This works perfectly when running the scripts, but unfortunately, PyCharm can't resolve these dynamic imports. I've already tried manually extending the PYTHONPATH as suggested in various threads (like here: PyCharm and PYTHONPATH), but it doesn't solve the problem.
This is a limitation because the IDE can't provide suggestions for the functions in these libraries, which are quite extensive.
Does anyone have any ideas on how to resolve this particular issue?