IMPORTANT: This fix is not needed for the Steam version of BTS, as Aspyr have finally fixed the problem. Thanks to bloodycelt for the heads up. However it seems that support for the disc versions of BTS has been abandoned, so if you have one of those, you'll need this fix.
BTS (and Warlords and Colonization) to fail to launch on El Capitan on Sierra, with the message "Failed Initializing Python". This is because Python 2.3 has been dropped since Yosemite, but is needed for Civ4 and its expansions. This fix restores Python 2.3 (and 2.5, just in case) to El Capitan so that BTS (and Warlords and Colonization) will run again.
The process is similar to my Yosemite fix, but with a couple less folders to install as I discovered some weren't actually necessary. However, there's a significant difference this time around: System Integrity Protection, also known as 'Rootless', is a new security feature added in El Capitan that prevents system files being modified in any way, not even with an admin password. Since the Python Framework we need to modify is located in OS X's System folder, we need to (temporarily) disable Rootless before we can do this.
Since we are adding files to OS X's System folder, please be extremely careful and be sure to have your system backed up before attempting this.
Step 1:
Download the attached files below. Unpack them. You should have a folder called 'BTS El Capitan Python Fix'.
If you don't already have a way to unpack 7zip I highly recommend getting The Unarchiver from the App Store. It's free and, in my opinion, an essential Mac utility.
Step 2:
Next we need to (temporarily) disable the 'Rootless' security feature. To do this we need to restart your Mac in 'Recovery Mode'. First make sure you can view this guide on another device, then restart your Mac, holding down the 'Command' and 'R' keys. Hold these until the the grey Apple logo appears. After a short time you should see an OS X Utilities screen.
Step 3:
Go to the menu bar at the top of the screen, select 'Utilities' then 'Terminal'. The Terminal application will open. You need to enter the following exactly:
You'll get a message saying that System Integrity Protection has been disabled and you need to restart your Mac. Do so.
Step 4:
In the Finder, Navigate to /System/Library/Frameworks/Python.framework/Versions/. There should be 2 folders and 3 aliases here. You need to move the aliases '2.3' and '2.5' elsewhere or delete them. Your admin password is required to do this.
If you choose to delete the aliases, be sure to empty the trash before continuing. If they're still in the trash once 'Rootless' is switched back on, they will be stuck there until you switch it off it again.
Step 5:
Inside the 'BTS El Capitan Python Fix' folder you've downloaded you should see two folders named '2.3' and '2.5'. Move these to where the aliases from Step 4 used to be. Again, your administration password is required.
Step 6:
Now we need to re-enable 'Rootless'. Repeat Step 2 to boot into Recovery Mode again.
Step 6:
Open the Terminal application as described in Step 3. This time you need to enter the following exactly:
You'll get a message saying that System Integrity Protection has been enabled and you need to restart your Mac. Do so.
BTS, Warlords, and Colonization should now work. Vanilla Civ4 requires additional steps (see here) as it's blocked by OS X for being too ancient.
BTS (and Warlords and Colonization) to fail to launch on El Capitan on Sierra, with the message "Failed Initializing Python". This is because Python 2.3 has been dropped since Yosemite, but is needed for Civ4 and its expansions. This fix restores Python 2.3 (and 2.5, just in case) to El Capitan so that BTS (and Warlords and Colonization) will run again.
The process is similar to my Yosemite fix, but with a couple less folders to install as I discovered some weren't actually necessary. However, there's a significant difference this time around: System Integrity Protection, also known as 'Rootless', is a new security feature added in El Capitan that prevents system files being modified in any way, not even with an admin password. Since the Python Framework we need to modify is located in OS X's System folder, we need to (temporarily) disable Rootless before we can do this.
Since we are adding files to OS X's System folder, please be extremely careful and be sure to have your system backed up before attempting this.
Step 1:
Download the attached files below. Unpack them. You should have a folder called 'BTS El Capitan Python Fix'.
If you don't already have a way to unpack 7zip I highly recommend getting The Unarchiver from the App Store. It's free and, in my opinion, an essential Mac utility.
Step 2:
Next we need to (temporarily) disable the 'Rootless' security feature. To do this we need to restart your Mac in 'Recovery Mode'. First make sure you can view this guide on another device, then restart your Mac, holding down the 'Command' and 'R' keys. Hold these until the the grey Apple logo appears. After a short time you should see an OS X Utilities screen.
Step 3:
Go to the menu bar at the top of the screen, select 'Utilities' then 'Terminal'. The Terminal application will open. You need to enter the following exactly:
Code:
csrutil disable
You'll get a message saying that System Integrity Protection has been disabled and you need to restart your Mac. Do so.
Step 4:
In the Finder, Navigate to /System/Library/Frameworks/Python.framework/Versions/. There should be 2 folders and 3 aliases here. You need to move the aliases '2.3' and '2.5' elsewhere or delete them. Your admin password is required to do this.
If you choose to delete the aliases, be sure to empty the trash before continuing. If they're still in the trash once 'Rootless' is switched back on, they will be stuck there until you switch it off it again.
Step 5:
Inside the 'BTS El Capitan Python Fix' folder you've downloaded you should see two folders named '2.3' and '2.5'. Move these to where the aliases from Step 4 used to be. Again, your administration password is required.
Step 6:
Now we need to re-enable 'Rootless'. Repeat Step 2 to boot into Recovery Mode again.
Step 6:
Open the Terminal application as described in Step 3. This time you need to enter the following exactly:
Code:
csrutil enable
You'll get a message saying that System Integrity Protection has been enabled and you need to restart your Mac. Do so.
BTS, Warlords, and Colonization should now work. Vanilla Civ4 requires additional steps (see here) as it's blocked by OS X for being too ancient.
Attachments
Last edited: