Spaces:
Runtime error
Runtime error
| 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)) |