Remove advice on bad Python linking
This is pathological and something that should be fixed in core, not by working around it. Closes https://github.com/Homebrew/legacy-homebrew/pull/45704.
This commit is contained in:
		
							parent
							
								
									883751d666
								
							
						
					
					
						commit
						116075dda9
					
				@ -95,49 +95,6 @@ $ git clean -n # if this doesn't list anything that you want to keep, then
 | 
			
		||||
$ git clean -f # this will remove untracked files
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Python: `Segmentation fault: 11` on `import <some_python_module>`
 | 
			
		||||
 | 
			
		||||
A `Segmentation fault: 11` is in many cases due to a different Python
 | 
			
		||||
executable used for building the software vs. the python you use to import the
 | 
			
		||||
module.  This can even happen when both python executables are the same version
 | 
			
		||||
(e.g. 2.7.2). The explanation is that Python packages with C extensions (those
 | 
			
		||||
that have `.so` files) are compiled against a certain python binary/library that
 | 
			
		||||
may have been built with a different arch (e.g. Apple's python is still not a
 | 
			
		||||
pure 64-bit build). Other things can go wrong, too. Welcome to the dirty
 | 
			
		||||
underworld of C.
 | 
			
		||||
 | 
			
		||||
To solve this, you should remove the problematic formula with those python
 | 
			
		||||
bindings and all of its dependencies.
 | 
			
		||||
 | 
			
		||||
  - `brew rm $(brew deps --installed <problematic_formula>)`
 | 
			
		||||
  - `brew rm <problematic_formula>`
 | 
			
		||||
  - Also check the `$(brew --prefix)/lib/python2.7/site-packages` directory and
 | 
			
		||||
    delete all remains of the corresponding python modules if they were not
 | 
			
		||||
    cleanly removed by the previous steps.
 | 
			
		||||
  - Check that `which python` points to the python you want. Perhaps now is the
 | 
			
		||||
    time to `brew install python`.
 | 
			
		||||
  - Then reinstall `brew install <problematic_formula>`
 | 
			
		||||
  - Now start `python` and try to `import` the module installed by the
 | 
			
		||||
    \<problematic_formula\>
 | 
			
		||||
 | 
			
		||||
You can basically use any Python (2.x) for the bindings homebrew provides, but
 | 
			
		||||
you can't mix.  Homebrew formulae use a brewed Python if available or, if not
 | 
			
		||||
so, they use whatever `python` is in your `PATH`.
 | 
			
		||||
 | 
			
		||||
### Python: `Fatal Python error: PyThreadState_Get: no current thread`
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
Fatal Python error: PyThreadState_Get: no current thread
 | 
			
		||||
Abort trap: 6
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
This happens for `boost-python`, `pygtk`, `pygobject`, and related modules,
 | 
			
		||||
for the same reason as described above. To solve this, follow the steps above.
 | 
			
		||||
 | 
			
		||||
If `boost` is your problem, note that Boost.Python is now provided by the
 | 
			
		||||
`boost-python` formula. Removing any existing `boost` and `boost-python`,
 | 
			
		||||
running `brew update`, and installing them anew should fix things.
 | 
			
		||||
 | 
			
		||||
### Python: easy-install.pth cannot be linked
 | 
			
		||||
```
 | 
			
		||||
Warning: Could not link <formulaname>. Unlinking...
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user