2013-02-24 40 views
17

Tôi là người mới và tôi cần mô-đun pySerial và feedparser cho các dự án của mình. Tôi đang chạy sư tử núi.Mô-đun cài đặt pip Python không tìm thấy. Làm thế nào để liên kết python để pip vị trí?

Tôi làm theo hướng dẫn sau để tôi có thể nâng cấp lên python 2.7.3 và sau đó sử dụng các mô-đun được đề cập ở trên.

http://hackercodex.com/guide/python-virtualenv-on-mac-osx-mountain-lion-10.8/

Tôi làm theo hướng dẫn này cho đến khi tôi cài đặt pip. Thay vì cài đặt Virtualenv. Tôi đã sử dụng các lệnh sau để cài đặt pySerial và feedparser

$ pip install pySerial 
Requirement already satisfied (use --upgrade to upgrade): pySerial in /Library/Python/2.7/site-packages 
Cleaning up... 

Tôi cho rằng điều này đã có và kiểm tra. Python có vẻ là nhập khẩu này tốt. Phiên bản python của tôi đã được nâng cấp lên 2,7,3 btw kể từ khi tôi cài đặt nó bằng cách sử dụng homebrew như đã đề cập trong hướng dẫn.

Sau đó, tôi đã cố gắng cài đặt feedparser

$ pip install feedparser 
Requirement already satisfied (use --upgrade to upgrade): feedparser in /usr/local/lib/python2.7/site-packages 
Cleaning up... 

Thông báo như thế nào của nó trong thư mục site-packages trong usr/local/lib.

Tất cả các cài đặt pip của tôi đang được cài đặt trong thư mục đó nhưng python dường như không chọn chúng khi tôi thử nhập chúng.

Làm cách nào để đặt đường dẫn sao cho python cũng trông ở đó cũng như thư mục chính?

Trợ giúp của bạn sẽ được đánh giá cao.

tôi đã cố gắng tìm kiếm câu trả lời ở đây: Pip installs but module is not found Why I can't import beautifulsoup on mac using python 2.7 after installing it by using pip and/or easy_install?

nhưng niether trong số họ đang trong tình cảnh tương tự như tôi. Tôi không hiểu tại sao điều này xảy ra như tôi sửa bash_profile của tôi với những điều sau

# Set architecture flags 
export ARCHFLAGS="-arch x86_64" 
# Ensure user-installed binaries take precedence 
export PATH=/usr/local/share/python:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 
# Load .bashrc if it exists 
test -f ~/.bashrc && source ~/.bashrc 

homebrew sau đó cài đặt và sau đó cài đặt python 2.7.3 qua homebrew (2.7.3 hiện đang hiện đang chạy trên máy tính của tôi)

Tôi đã tìm ra tất cả các cài đặt pip sẽ được liên kết chính xác?

Trả lời

32

Là một workaround nhanh chóng, và giả định rằng bạn đang ở trên một thiết bị đầu cuối bash-like (Linux/OSX), bạn có thể thử để xuất khẩu các biến môi trường PYTHONPATH:

export PYTHONPATH="${PYTHONPATH}/usr/local/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages" 

Đối với Python 2.7

+7

Nó làm việc cho tôi. Bạn có thể giải thích ngắn gọn về điều này không? Thx – GilbertLee

0

làm thế nào bạn cài đặt easy_install/pip? đảm bảo rằng bạn đã cài đặt nó cho phiên bản nâng cấp của python. những gì có thể xảy ra ở đây là cài đặt python cũ (mặc định) có thể được liên kết với cài đặt pip của bạn. bạn có thể thử chạy phiên bản mặc định và nhập các mô-đun mới được cài đặt.

7

Tôi cũng gặp sự cố này. Tôi nhận thấy rằng tất cả các thư mục con và các tập tin trong /usr/local/lib/python2.7/dist-packages/ không có quyền đọc hoặc viết cho nhóm và khác, và chúng được sở hữu bởi root.Điều này có nghĩa rằng chỉ có người sử dụng root có thể truy cập chúng, và vì vậy bất kỳ người dùng cố gắng để chạy một kịch bản Python sử dụng bất kỳ các module có một lỗi nhập khẩu:

$ python 
Python 2.7.3 (default, Apr 10 2013, 06:20:15) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import selenium 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named selenium 
>>> 

tôi cấp quyền đọc trên các tập tin và cho phép tìm kiếm trên các thư mục con cho nhóm và khác như vậy:

$ sudo chmod -R go+rX /usr/local/lib/python2.7/dist-packages 

và đó giải quyết vấn đề đối với tôi:

$ python 
Python 2.7.3 (default, Apr 10 2013, 06:20:15) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import selenium 
>>> 

tôi đã cài đặt những gói với pip (chạy như wit gốc h sudo). Tôi không chắc chắn lý do tại sao nó cài đặt chúng mà không cấp quyền đọc/tìm kiếm. Điều này có vẻ như một lỗi trong pip cho tôi, hoặc có thể trong cấu hình gói, nhưng tôi không quen thuộc với Python và bao bì mô-đun của nó, vì vậy tôi không biết chắc chắn. FWIW, tất cả các gói theo gói phân phối đều có vấn đề này. Nhưng dù sao, hy vọng sẽ giúp.

Trân trọng.

4

Đây là điều mà tôi học được sau một thời gian dài gặp vấn đề với pip khi tôi đã có một vài phiên bản Python cài đặt (có giá trị đặc biệt cho người dùng OS X mà có lẽ sử dụng bia để cài đặt hỗn hợp python.)

tôi giả rằng hầu hết các nhà phát triển python làm có ở phần đầu của kịch bản của họ:

#!/bin/env python 

bạn có thể ngạc nhiên khi phát hiện ra rằng đây không phải là nhất thiết phải là trăn giống như một bạn chạy từ dòng lệnh >python

Để chắc chắn bạn cài đặt gói bằng cách sử dụng dụ pip chính xác cho thông dịch viên python của bạn, bạn cần phải chạy một cái gì đó như:

>/bin/env python -m pip install --upgrade mymodule 
+0

tuyệt vời. điều này giải quyết được vấn đề của tôi. –

+0

Tôi nghĩ bạn có nghĩa là '/ usr/bin/env' đối với OSX –

3

Không giải pháp khác đang làm việc cho tôi, vì vậy tôi cố gắng:

pip uninstall <module> && pip install <module> 

Và điều đó giải quyết nó cho tôi. Số dặm của bạn có thể thay đổi.

0

Đối với tôi, vấn đề là tôi đã thiết lập cấu hình lạ trong tập tin pydistutils.cfg

Thử chạy rm ~/.pydistutils.cfg