Light-PDF-Web-QA-Chatbot / bootstrapper.py
Sean-Case
gpu_layers should now update correctly. Added code for creating distribution.
114048b
raw
history blame
2.08 kB
import sys
import os
import subprocess
import logging
# Set up logging
logging.basicConfig(filename='bootstrapper.log', level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
ENV_DIR = "app_env"
def create_virtual_env():
logging.info("Checking for virtual environment at {}".format(ENV_DIR))
if not os.path.exists(ENV_DIR):
logging.info("Virtual environment not found. Creating a new one.")
# Import virtualenv and create a new environment
import virtualenv
virtualenv.create_environment(ENV_DIR)
def install_dependencies():
logging.info("Installing dependencies.")
# Ensure the requirements.txt file is bundled with your application
requirements_path = "requirements.txt"
# pip executable within the virtual environment
pip_path = os.path.join(ENV_DIR, 'Scripts', 'pip')
try:
subprocess.check_call([pip_path, "install", "-r", requirements_path])
logging.info("Dependencies installed successfully.")
except Exception as e:
logging.error("Error installing dependencies: {}".format(e))
def main():
#try:
# create_virtual_env()
#except Exception as e:
# logging.error("An error occurred in the bootstrapper: {}".format(e), exc_info=True)
try:
import langchain
except ImportError:
logging.warning("Some dependencies are missing. Attempting to install.")
install_dependencies()
# Now you can run your main application logic.
# If it's in another file, you can use exec as shown before.
try:
with open('app.py', 'r') as file:
exec(file.read())
logging.info("Main application executed successfully.")
except Exception as e:
logging.error("Error executing main application: {}".format(e))
if __name__ == "__main__":
logging.info("Bootstrapper started.")
try:
main()
logging.info("Bootstrapper finished.")
except Exception as e:
logging.error("An error occurred in the bootstrapper: {}".format(e))