2011-09-19 36 views
12

Tôi đang cố gắng chạy tập lệnh python từ môi trường dòng lệnh SSH SSH Secure Shell và tôi đang cố gắng nhập thư viện argparse, nhưng nó cung cấp lỗi: "ImportError: No module named argparse" .mô-đun Python argparse trong cli

Tôi nghĩ rằng điều này là do môi trường Python mà vỏ Linux đang sử dụng không có thư viện argparse trong đó, và tôi nghĩ tôi có thể sửa nó nếu tôi có thể tìm thấy các thư mục cho các thư viện đang được Môi trường Python, và sao chép thư viện argparse vào nó, nhưng tôi không thể tìm thấy thư mục đó nằm ở đâu.

Tôi sẽ đánh giá cao bất kỳ trợ giúp nào về việc tìm thư mục này (tôi cho rằng tôi có thể đưa thư viện argparse vào cùng thư mục với tập lệnh python của tôi bây giờ, nhưng tôi sẽ có thư viện argparse ở nơi các thư viện Python khác là, như nó phải là).

+0

argparse.py là một đoạn python khá chuẩn, có thể bạn đã làm hỏng sys.path của mình. Hãy chạy lệnh này và dán kết quả vào câu hỏi của bạn: python -c "import argparse; print argparse" –

+1

phiên bản python nào bạn đang sử dụng? –

+2

bạn đang ở đâu? – myusuf3

Trả lời

1

Bạn có thể kiểm tra các đường dẫn tìm kiếm cho mô-đun với:

import sys 
print "\n".join(sys.path) 

Nhưng không có argparse là số lẻ: đó là trong thư viện chuẩn ...

+0

Không có trong lib chuẩn cho đến 2.7. Xem câu trả lời của tôi để biết chi tiết. – dkamins

0

lẽ Bạn đang sử dụng phiên bản cũ của Python .

Mô-đun argparse đã được thêm gần đây, trong Python 2.7.

6

Mô-đun argparse đã được thêm vào bằng Python 2.7. http://docs.python.org/library/argparse.html

Trước 2.7, cách phổ biến nhất để xử lý đối số dòng lệnh có thể là getopt. http://docs.python.org/library/getopt.html

Tất nhiên bạn luôn có thể xử lý dòng lệnh theo cách thủ công chỉ bằng cách xem sys.argv. Tuy nhiên getopt là một lớp trừu tượng tốt và argparse thậm chí còn tốt hơn.

Nếu bạn thực sự cần argparse trong môi trường cũ hơn (có thể tranh cãi), có dự án Google Code duy trì nó và bạn có thể đưa dự án đó vào dự án của mình. http://code.google.com/p/argparse/

+4

Trước 2.7, mô-đun ['optparse'] (http://docs.python.org/library/optparse.html) có thể được sử dụng hoặc' pip install argparse'. – jfs

+0

làm cách nào tôi có thể cài đặt "pip"? – greg

+0

@greg bạn có thể sử dụng 'virtualenv' bao gồm' pip' – dkamins

2

Nếu bạn đang sử dụng CentOS và không có RPM dễ dàng để truy cập Python 2.7, đề xuất của JF là pip install argparse là cách để thực hiện. Gọi ra giải pháp này trong một câu trả lời mới. Cảm ơn, JF.

2

Chỉ cần thêm gói bằng tay nếu bạn sử dụng Centos 6 mặc định Python 2.6.6

yum install python-argparse 

Thats tất cả nó đã cho tôi để có được IPython để làm việc. Odd rằng YUM đã không cài đặt nó tự động khi tôi sử dụng YUM để cài đặt IPython.

Các vấn đề liên quan