Python Import Error for modules installed with Hom

2020-06-30 00:12发布

问题:

I've already installed PySide using homebrew, but I get an error when my scripts run things such as

from PySide import QtWebKit

When I try brew install pyside I get an error that pyside-1.2.0 already installed

When I try pip install pyside I get the following error:

In file included from /Users/fitvalet/wgwt/env/build/pyside/sources/pyside/plugins/customwidgets.cpp:23:

/Users/fitvalet/wgwt/env/build/pyside/sources/pyside/plugins/customwidget.h:27:10: fatal error: 'QtDesigner/QtDesigner' file not found

fatal error: 'QtDesigner/QtDesigner' file not found

#include <QtDesigner/QtDesigner>

     ^

2 warnings and 1 error generated.

make[2]: *** [plugins/CMakeFiles/uiplugin.dir/customwidgets.cpp.o] Error 1

make[1]: *** [plugins/CMakeFiles/uiplugin.dir/all] Error 2

make: *** [all] Error 2

error: Error compiling pyside

...

Command /Users/fitvalet/WGWT/env/bin/python -c 
"import setuptools;__file__='/Users/fitvalet/WGWT/env/build/pyside/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" 
install --record /var/folders/rb/qjx8psqs3gj48qmpgbqqvrhc0000gn/T/pip-h69ltB-record/install-record.txt --single-version-externally-managed --install-headers 
/Users/fitvalet/WGWT/env/include/site/python2.7 failed with error code 1 in 
/Users/fitvalet/WGWT/env/build/pyside
Storing complete log in /Users/fitvalet/.pip/pip.log

I also tried easy_install pyside and got this error:

2 warnings and 1 error generated.
make[2]: *** [plugins/CMakeFiles/uiplugin.dir/customwidgets.cpp.o] Error 1
make[1]: *** [plugins/CMakeFiles/uiplugin.dir/all] Error 2
make: *** [all] Error 2
error: Setup script exited with error: Error compiling pyside

回答1:

I figured out the problem by reinstalling the homebrew installation of PySide.

When you install using homebrew, you get a warning that

For non-homebrew python (2.x), you need to amend your PYTHONPATH like so:
export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH 

Ran this and the module worked.

To make the change automatic rather than having to type the line each time I opened a new terminal console, I needed to add that line to my ./bash_profile file.