遇到的問題

  • 今天在 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']

Refrerence

Comments

2020-05-22