|
|
|
""" |
|
Dependency fixer for Resume Screener and Skill Extractor |
|
This script ensures all dependencies are properly installed with compatible versions. |
|
""" |
|
|
|
import sys |
|
import subprocess |
|
import pkg_resources |
|
import os |
|
|
|
def install(package): |
|
"""Install a package using pip""" |
|
subprocess.check_call([sys.executable, "-m", "pip", "install", package]) |
|
|
|
def install_with_message(package, message=None): |
|
"""Install a package with an optional message""" |
|
if message: |
|
print(f"\n{message}") |
|
print(f"Installing {package}...") |
|
install(package) |
|
|
|
def main(): |
|
print("Running dependency fixer for Resume Screener and Skill Extractor...") |
|
|
|
|
|
install_with_message("pip==23.1.2", "Upgrading pip to ensure compatibility") |
|
install_with_message("setuptools==68.0.0", "Installing compatible setuptools") |
|
|
|
|
|
in_hf_space = os.environ.get("SPACE_ID") is not None |
|
|
|
|
|
dependencies = [ |
|
("streamlit==1.31.0", "Installing Streamlit for the web interface"), |
|
("pdfplumber==0.10.1", "Installing PDF processing libraries"), |
|
("PyPDF2==3.0.1", None), |
|
("python-docx==1.0.1", None), |
|
("rank-bm25==0.2.2", "Installing BM25 ranking library"), |
|
("tqdm==4.66.1", "Installing progress bar utility"), |
|
("faiss-cpu==1.7.4", "Installing FAISS for vector similarity search"), |
|
("huggingface-hub==0.20.3", "Installing Hugging Face Hub"), |
|
("transformers==4.36.2", "Installing Transformers"), |
|
("sentence-transformers==2.2.2", "Installing Sentence Transformers"), |
|
("torch==2.1.2", "Installing PyTorch"), |
|
("nltk==3.8.1", "Installing NLTK for text processing"), |
|
("pandas==2.1.3", "Installing data processing libraries"), |
|
("numpy==1.24.3", None), |
|
("plotly==5.18.0", "Installing visualization libraries"), |
|
("spacy==3.7.2", "Installing spaCy for NLP"), |
|
] |
|
|
|
|
|
for package, message in dependencies: |
|
install_with_message(package, message) |
|
|
|
|
|
print("\nDownloading NLTK data...") |
|
install("nltk") |
|
import nltk |
|
nltk.download('punkt') |
|
|
|
|
|
|
|
if not in_hf_space: |
|
print("\nDownloading spaCy model...") |
|
try: |
|
subprocess.check_call([sys.executable, "-m", "spacy", "download", "en_core_web_sm"]) |
|
except: |
|
install("https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.7.0/en_core_web_sm-3.7.0.tar.gz") |
|
|
|
print("\nDependency installation complete!") |
|
print("You can now run the Resume Screener with: streamlit run app.py") |
|
|
|
if __name__ == "__main__": |
|
main() |