Python Can't Find Packages In Virtual Environment
Solution 1:
It looks like you're manually setting your $PATH
to point to your virtual environment. The whole point of the myenv/bin/activate
script is to take care of this for you.
Once you have activated your virtual environment, any package you install using pip will be placed in the relevant venv site-packages
directory (in your case, myenv/lib/python2.7/site-packages
). Things like pip --user
are unnecessary when you are working in a virtual environment (assuming default behaviour). It's all automatic.
After running activate
, you can check the python binary you are using with find -iname tweepy
.
Aliases can cause issues too. which
is an external command, and won't always pick these up. A type -a python
will flush these out.
A quick test can be done by running helloTwitter/myenv/bin/python -c 'import tweepy'
directly. If this behaves differently to however you are currently running python (i.e. doesn't throw an import exception), then this is your problem.
Hope that helps.
Solution 2:
Ok, I think I found a solution, if not an answer.
- I uninstalled the package and made sure it was not in system or user.
- I re-created the virtual environment.
- I checked that the environments python and pip were being used.
- This time when installing my package I added the
--no-cache-dir
option. The packages install successfully. Now Python can find the package.
derptop:environmentScience Marcus$ python
>>> from tweepy import StreamListener
>>> StreamListener
<class tweepy.streaming.StreamListener'>
I checked the sys.path
and it now includes the site-packages
directory from the virtual environment, where previously it was absent.
Output of sys.path
:
['', ....'/Users/Marcus/CodeProjects/environmentScience/myenv/lib/python2.7/site-packages']
As far as I can tell the sys.path
was referencing the wrong site packages directory. Though I'm not sure why. I'm wondering if pips use of the cache was causing the site-packages reference to reset to system.
Post a Comment for "Python Can't Find Packages In Virtual Environment"