pip_success_but_not_found
遇到的問題
- 今天在 EC2 上,使用 virtualenv 來安裝 pandas 時,遇到 pip 有安裝成功,但是進去 ipython 時,找不到 pandas module 的情形
- 找了一段時間後,發現 package 被安裝在 lib64 的path,而 pip 是找 lib folder,所以找不到 pandas module
1
2
3
4/home/ec2-user/.virtualenvs/data/lib64/python3.6/dist-packages/pandas
/home/ec2-user/.virtualenvs/data/lib64/python3.6/dist-packages/pandas/tests/io/json/__pycache__/test_pandas.cpython-36.pyc
/home/ec2-user/.virtualenvs/data/lib64/python3.6/dist-packages/pandas/tests/io/json/test_pandas.py
/home/ec2-user/.virtualenvs/data/lib64/python3.6/dist-packages/pandas-1.0.3.dist-info - 看起來應該是某版本的 amazon linux 的問題
解法
用指定路徑的方式,來執行 pip
1
$ pip install --upgrade --target /home/ec2-user/.virtualenvs/data/local/lib/python3.6/dist-packages pandas
看 python 的 path
1
2
3>>> import sys
>>> sys.path
['', '/home/ec2-user/.virtualenvs/data/local/lib64/python3.6/site-packages', '/home/ec2-user/.virtualenvs/data/local/lib/python3.6/site-packages', '/home/ec2-user/.virtualenvs/data/lib64/python3.6', '/home/ec2-user/.virtualenvs/data/lib/python3.6', '/home/ec2-user/.virtualenvs/data/lib64/python3.6/site-packages', '/home/ec2-user/.virtualenvs/data/lib/python3.6/site-packages', '/home/ec2-user/.virtualenvs/data/lib64/python3.6/lib-dynload', '/home/ec2-user/.virtualenvs/data/local/lib/python3.6/dist-packages', '/usr/lib64/python3.6', '/usr/lib/python3.6']