@sukiletxe thanks for the hint. I think I am closer now. The error has changed, it's complaining about not being able to find speechd which is not imported in Windows. I added exclude module speechd and it still happens. Also, it checks for a socket file on Linux systems and windows is complaining about not being able to find that. The command I used to generate the spec file is:
pyinstaller --exclude-module speechd "Toby Doom Launcher.py"
It generates the dist folder with a Toby doom Launcher folder inside it. In that folder are Toby Doom Launcher.exe and _internal/ which contains all the stuff it needs. I think if I can get it to stop trying to import the linux stuff, it should work now, this is much different than what it had before that was failing to import nvdaControllerClient.dll. This is how I have my imports set up. I'm not really sure it's 100% correct, I don't do much development for Windows:
# Initialize speech provider based on platform
if platform.system() == "Windows":
# Set up DLL paths for Windows
if getattr(sys, 'frozen', False):
# If running as compiled executable
dll_path = os.path.join(sys._MEIPASS, 'lib')
if os.path.exists(dll_path):
os.add_dll_directory(dll_path)
# Also add the executable's directory
os.add_dll_directory(os.path.dirname(sys.executable))
# Initialize Windows speech provider
try:
import accessible_output2.outputs.auto
s = accessible_output2.outputs.auto.Auto()
speechProvider = "accessible_output2"
except ImportError as e:
print(f"Failed to initialize accessible_output2: {e}")
sys.exit()
else:
# Linux/Mac path
try:
output = subprocess.check_output(["pgrep", "cthulhu"])
speechProvider = "cthulhu"
except (subprocess.CalledProcessError, FileNotFoundError):
try:
import accessible_output2.outputs.auto
s = accessible_output2.outputs.auto.Auto()
speechProvider = "accessible_output2"
except ImportError as e:
try:
import speechd
spd = speechd.Client()
speechProvider = "speechd"
except ImportError:
print("No speech providers found.")
sys.exit()
I know there are Mac references in the comments, and I do plan on getting there eventually, but I have this problem to fix vfirst. ☺️
If anyone has experience with pyinstaller and accessible_output2, I am trying to package a program that uses it. The program works great uncompiled, but once made into a .exe, it complains about not finding nvdaControllerClient.dll. I have tried everything I and LLMs can think of and nothing seems to fix it. Any pointers would be much appreciated.
The program in question is a launcher for the Toby Doom project that will replace all the existing .bat files and offer much better customization for game play. I could just ship it as a .py, but that would mean asking Windows users to install python and pip install dependencies. This is why I want to make the .exe.
linux-game-manager
Storm Dragon pushed changes to the master branch of the linux-game-manager project Updated MUD launchers. Added Legends of Kallisti.
linux-game-manager
Storm Dragon pushed changes to the master branch of the linux-game-manager project Updated MUD launchers. Added Legends of Kallisti.
Episode 4 of the podcast is now available.
Toby Doom Accessibility Mod Version 8.0 Released
Here is the release video for Toby Doom 8.0. You can grab the full version with everything included, or visit the Toby Doom topic on the ZDoom forum to download the components individually.
This version includes support for Hexen. Although there is an open source Hexen iwad, I was unable to get it working. You can get Hexen from Steam and just place the Hexen iwad in the Toby Doom folder.
For questions and discussion, there is this topic on the audiogames.net forum. Happy Dooming! Rip and tear until it is done! 🤘
Voluntary pet food recall issued after Oregon house cat dies from eating product that tested positive for bird flu
https://www.cnn.com/2024/12/25/us/bird-flu-pet-food-voluntary-recall?utm_source=flipboard&utm_medium=activitypub
Posted into US News @us-news-CNN
Gross
A sharply dressed city biker walks into a rough, dusty tavern tucked away in the remote outback of Western Australia. Making his way to the bar, he notices an old, rugged biker sitting silently, arms crossed, staring intently at a bowl of chili in front of him. The chili remains untouched, and the old biker seems lost in thought.
Curiosity gets the better of the city biker. After a few minutes, he leans over and asks, “Hey, if you’re not gonna eat that, mind if I have it?”
The old biker slowly turns his head and replies “Nah, go ahead.”
Wasting no time, the city biker pulls the bowl over, grabs a spoon, and digs in, devouring with enthusiasm. Bite after bite, he enjoys the warm, savory dish—until his spoon scrapes the bottom of the bowl. That’s when he spots it: a dead mouse.
Horrified, his stomach churns, and he immediately vomits the chili back into the bowl.
The old biker, calm and unmoved, glances at him and says in a low voice, “Yeah... that’s where I stopped, too.”
audiogame-manager
Storm Dragon pushed changes to the testing branch of the audiogame-manager project Fixed file validation for .exe files.
audiogame-manager
Storm Dragon pushed changes to the testing branch of the audiogame-manager project Fixed file validation for .exe files.
Heimlich Maneuver
1. Make a fist with one hand and grab it with the other.
2. Place your hands just above the belly button and below the ribcage.
3. Pull inward and upward on the diaphragm to force air out of the lungs to expel the blockage.
4. Repeat up to 5 times.
audiogame-manager
Storm Dragon pushed changes to the testing branch of the audiogame-manager project Fixed validation code so that things can actually pass validation and work.
audiogame-manager
Storm Dragon pushed changes to the testing branch of the audiogame-manager project Fixed validation code so that things can actually pass validation and work.
audiogame-manager
Storm Dragon pushed changes to the testing branch of the audiogame-manager project Fixed validation code so that things can actually pass validation and work.
audiogame-manager
Storm Dragon pushed changes to the testing branch of the audiogame-manager project Fixed validation code so that things can actually pass validation and work.
audiogame-manager
Storm Dragon pushed changes to the testing branch of the audiogame-manager project Fixed validation code so that things can actually pass validation and work.
audiogame-manager
Storm Dragon pushed changes to the testing branch of the audiogame-manager project Fixed validation code so that things can actually pass validation and work.
audiogame-manager
Storm Dragon pushed changes to the testing branch of the audiogame-manager project Fixed validation code so that things can actually pass validation and work.
audiogame-manager
Storm Dragon pushed changes to the testing branch of the audiogame-manager project Fixed validation code so that things can actually pass validation and work.
audiogame-manager
Storm Dragon pushed changes to the testing branch of the audiogame-manager project Fixed validation code so that things can actually pass validation and work.