WSL dependency setup error
Closed this issue · 7 comments
When running this step in the Windows 11 setup:
yes | wget -O - https://raw.githubusercontent.com/DrewThomasson/VoxNovel/main/shell_install_scripts/Ubuntu-install.sh | bash
I get this error:
ERROR: Cannot install -r Ubuntu_requirements.txt (line 105), -r Ubuntu_requirements.txt (line 15), -r Ubuntu_requirements.txt (line 2), -r Ubuntu_requirements.txt (line 24), -r Ubuntu_requirements.txt (line 29), -r Ubuntu_requirements.txt (line 42), -r Ubuntu_requirements.txt (line 58), -r Ubuntu_requirements.txt (line 71), -r Ubuntu_requirements.txt (line 89), -r Ubuntu_requirements.txt (line 95), -r Ubuntu_requirements.txt (line 96) and numpy==1.26.4 because these package versions have conflicting dependencies.
The conflict is caused by:
The user requested numpy==1.26.4
accelerate 0.24.1 depends on numpy>=1.17
blis 0.7.11 depends on numpy>=1.19.0; python_version >= "3.9"
clean-fid 0.1.35 depends on numpy>=1.14.3
contourpy 1.2.0 depends on numpy<2.0 and >=1.20
encodec 0.1.1 depends on numpy
gruut 2.2.3 depends on numpy<2.0.0 and >=1.19.0
imageio 2.32.0 depends on numpy
librosa 0.10.0 depends on numpy>=1.20.3
matplotlib 3.7.3 depends on numpy<2 and >=1.20
moviepy 1.0.3 depends on numpy>=1.17.3; python_version != "2.7"
moviepy 1.0.3 depends on numpy; python_version >= "2.7"
numba 0.57.0 depends on numpy<1.25 and >=1.21
To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip to attempt to solve the dependency conflict
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts
Took a bit to find this error, because the Windows 11 setup script doesn't pause/exit on error, it just keeps going assuming everything worked properly.
Seems Ubuntu_requirements.txt
is over-constrained, with every dependency asking for an exact version.
Interesting... and that makes the app not work? I'll look into this...
Just asking for clarification, Does this make VoxNovel unable to run?
and which installation method were you using?
I was going through the Windows 11 setup, including a new WSL install and conda environment.
It caused a module not found error when I tried running python headless_voxnovel.py
hmm... I'll look into this by re-installing on my Windows computer
In the meantime idk you could try one of the headless docker images?
you'll probs have to increase the max ram usage allowed for docker in windows if it crashes in the process
16 gb of ram is most likely needed
https://www.youtube.com/watch?v=dxEbtZsBO2A
🐳 Docker (Sound not working in gui yet)
🐳 Headless Docker
Docker headless m1 🍏Mac
-
cd ~
-
git clone https://github.com/DrewThomasson/VoxNovel.git
-
sudo docker run -v "$HOME/VoxNovel:/VoxNovel/" -it athomasson2/voxnovel:headless_m1_v2
Headless Docker 🐧 Linux/Intel 🍏Mac
For Headless Docker on only cpu
-
cd ~
-
git clone https://github.com/DrewThomasson/VoxNovel.git
-
sudo docker run -v "$HOME/VoxNovel:/VoxNovel/" -it athomasson2/voxnovel:latest_headless
For headless docker with gpu speedup if you have a nvida gpu
-
cd ~
-
git clone https://github.com/DrewThomasson/VoxNovel.git
-
sudo docker run --gpus all -v "$HOME/VoxNovel:/VoxNovel/" -it athomasson2/voxnovel:latest_headless
Headless Docker 🖥️ Windows
Installation and Setup on Windows (PowerShell)
Follow these steps to set up the VoxNovel project on a Windows system using PowerShell:
-
Navigate to your user profile directory:
cd $env:USERPROFILE
-
Clone the VoxNovel repository from GitHub:
git clone https://github.com/DrewThomasson/VoxNovel.git
Running VoxNovel in Docker
For Headless Operation on CPU
To run the VoxNovel application in a Docker container on your CPU:
docker run -v "${env:USERPROFILE}/VoxNovel/:/VoxNovel/" -it athomasson2/voxnovel:latest_headless
For Headless Operation with NVIDIA GPU Speedup
If you have an NVIDIA GPU and want to accelerate processing, use the following command:
docker run --gpus all -v "${env:USERPROFILE}/VoxNovel/:/VoxNovel/" -it athomasson2/voxnovel:latest_headless
🐳 GUI Docker (Sound not working in gui yet)
🐧 Linux Docker
1. `cd ~`git clone https://github.com/DrewThomasson/VoxNovel.git
sudo docker run --gpus all -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev/snd:/dev/snd --device /dev/snd -v "$HOME/VoxNovel:/VoxNovel/" -it athomasson2/voxnovel:latest
🍏 Mac Docker
Setting Up GUI Applications with Docker on macOS
This guide provides instructions on how to run a Docker container with a graphical user interface on macOS using XQuartz for X11 forwarding and volume mounting.
Install XQuartz
- Download and install XQuartz from XQuartz website.
- Open XQuartz.
- Go to
XQuartz
->Preferences
. - In the
Security
tab, enable Allow connections from network clients. - Restart XQuartz to apply these settings.
Configure and Run the Docker Container
Allow Docker to Connect to XQuartz
Open a terminal and run the following command to allow connections from your local machine to XQuartz:
xhost + $(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')
Start the Docker Container
Run the following command to start your Docker container. This command configures the GUI to display on your host and mounts the necessary directories:
cd ~
git clone https://github.com/DrewThomasson/VoxNovel.git
docker run -e DISPLAY=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}'):0 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v "/Users/$(whoami)/VoxNovel:/VoxNovel" \
athomasson2/voxnovel:latest
Notes
- XQuartz Configuration: Ensure that XQuartz is configured to allow network clients before attempting to connect.
- Directory Existence: Verify that the directory
/Users/$(whoami)/VoxNovel
exists on your Mac. If not, create it or adjust the volume mount path in the Docker command as needed. - Firewall and Security: If you face connectivity issues, check any firewall settings and security preferences that might block the connections.
🪟 Windows Docker
-
Install VcXsrv:
choco install vcxsrv
- First install VcXsrv and configure it to allow connections.
How to setup VcXsrv
After installing VcXsrv, it typically launches automatically. You can confirm it's running by checking for its icon in the system tray, usually located near the clock in the taskbar. It may also start automatically when you log in to your system.
To ensure it's configured to allow connections from Docker containers, follow these steps:
- Right-click on the VcXsrv icon in the system tray.
- Select "XLaunch" to open the configuration wizard.
- In the configuration wizard, select "Multiple windows" and proceed to the next step.
- Choose your preferred settings for display number and screen.
- In the "Extra settings" window, make sure to check the box labeled "Disable access control" to allow connections from Docker containers.
- Complete the configuration by clicking "Finish" and then "Save configuration" when prompted.
With these settings, VcXsrv should be running and configured to allow connections from Docker containers. You can now proceed with running your Docker commands requiring GUI support.
-
Change to your home directory:
cd $HOME
-
Clone the repository:
git clone https://github.com/DrewThomasson/VoxNovel.git
-
Run the Docker container:
docker run -e DISPLAY=host.docker.internal:0 -v "/Users/$(whoami)/VoxNovel:/VoxNovel/" -it athomasson2/voxnovel:latest
Thanks, headless Docker setup worked for me
Fantastic! 🎉
And if you really want the interface I have a .tar backup of a working WSL2 ENV as a tar,
guide for importing and using .tar wsl VoxNovel working Backup
Here’s the guide without the automated download, where you download the WSL .tar file manually first.
Full Guide: Importing and Running the VoxNovel WSL Environment
This guide will walk you through downloading the VoxNovel WSL environment .tar file manually, importing it into WSL, running the environment, and finally cleaning it up when no longer needed.
Step 1: Download the VoxNovel WSL .tar File
1. Manually download the WSL .tar file from the following link:
Download VoxNovel WSL Environment
Save this file to an accessible location on your computer, such as C:\Users<your_username>\Downloads.
Step 2: Import the VoxNovel WSL Environment
1. Open PowerShell or Command Prompt as Administrator.
2. Run the following command to import the downloaded .tar file into WSL under the name VoxNovel:
wsl --import VoxNovel C:\WSL\VoxNovel C:\Users<your_username>\Downloads\Windows_WSL_VoxNovel.tar
• Replace <your_username> with your actual Windows username.
• This will import the WSL environment into the C:\WSL\VoxNovel folder and register it under the name VoxNovel.
Step 3: Access the VoxNovel WSL Environment
Once the import is complete, access the VoxNovel environment by running:
wsl -d VoxNovel
This command will open a shell inside the VoxNovel WSL environment.
Step 4: Set Up and Run the VoxNovel Application
- Make the Script Executable
Inside the WSL environment, run the following command to make the provided shell script executable:
chmod +x ~/VoxNovel/shell_install_scripts/Windows-install-scripts/wsl_import_run.sh
- Run the Shell Script
To set up and launch the VoxNovel application, run the following command:
~/VoxNovel/shell_install_scripts/Windows-install-scripts/wsl_import_run.sh
Step 5: Shell Script Overview
Here’s a breakdown of what the wsl_import_run.sh script does:
#!/bin/bash
Switch to the appropriate user
su - drew
export DISPLAY=:0
Sound may not work in an imported WSL environment
echo "Conda path: $(which conda)"
echo "Available environments:"
conda env list
Activate the VoxNovel environment
echo "Activating environment..."
source ~/miniconda/etc/profile.d/conda.sh
conda activate VoxNovel
Confirm the active environment and run the VoxNovel application
echo "Current environment: $CONDA_DEFAULT_ENV"
cd ~/VoxNovel
echo "Running Python script..."
python gui_run.py
What the Script Does:
• Switch User: Switches to the drew user.
• Set Display: Exports the DISPLAY variable to enable GUI functionality.
• Conda Setup: Displays available Conda environments and activates the VoxNovel environment.
• Run VoxNovel: After activating the environment, it runs the Python script gui_run.py to launch the VoxNovel application.
Note: Due to WSL limitations, sound may not work in this environment without additional setup.
Step 6: Delete the WSL .tar File to Free Up Space
After successfully importing the .tar file into WSL, you no longer need the .tar file. To free up space, you can manually delete it:
1. Navigate to where you saved the .tar file (e.g., C:\Users\<your_username>\Downloads).
2. Delete the Windows_WSL_VoxNovel.tar file to free up space.
Step 7: How to Clean Up the VoxNovel WSL Environment
If you no longer need the VoxNovel WSL environment, you can delete it completely:
1. Open PowerShell as Administrator.
2. Run the following command to unregister (delete) the VoxNovel WSL environment:
wsl --unregister VoxNovel
This will remove all data associated with the VoxNovel environment, freeing up space.
Final Notes
After following this guide, you’ll have downloaded and imported the VoxNovel WSL environment, run the application, and learned how to clean up the environment and unnecessary files.
- I am also currently re-designing the gui to work fully in a gradio web interface allowing one to run it fully in a docker, (idk it's taking a bit tho)
(I love docker lol)