2015-02-18 51 views
15

Tôi đã tìm thấy passpass không hoạt động trong PyCharm. Nó chỉ bị treo.Cách sử dụng Python getpass.getpass trong PyCharm

Trong thực tế có vẻ như msvcrt.getch và raw_input cũng không hoạt động, vì vậy có lẽ vấn đề không phải là với getpass. Thay vào đó với 'i' bit của xử lý stdio của PyCharm.

Vấn đề là, tôi không thể đặt mật khẩu cá nhân của mình vào mã vì nó sẽ kết thúc trong SVN mà sẽ hiển thị với người khác. Vì vậy, tôi sử dụng getpass để có được mật khẩu của tôi mỗi lần.

On tìm kiếm, tất cả tôi có thể tìm thấy là "Pycharm làm mái vòm hack để có được Django làm việc với getpass" nhưng không có gợi ý như những gì mà hack là ....

Tôi đã nhìn getpass và nó sử dụng msvcrt trên Windows (do đó, sự cố này chỉ có thể xảy ra trên Windows)

Câu hỏi của tôi là: Có một vùng làm việc cho vấn đề này không?

Trả lời

1

Một giải pháp phổ biến cho việc này là lưu trữ thông tin xác thực trong tệp mà bạn đánh dấu bởi VCS của mình. Sau đó, chỉ cần:

with open('credentials.txt') as f: 
    user, pw = f.read().split('\n') # or similar 

Ngoài ra, hãy chỉ định chúng trong biến môi trường. Cả hai phương pháp này nên làm việc xung quanh việc xử lý của PyCharm là stdin.

+1

qua là một từ khóa vì vậy đây sẽ không hoạt động – michaelsnowden

4

Tôi đã chạy vào Pycharm CE 4.5 chạy trên Windows này. Cách giải quyết mà tôi sử dụng là chạy chương trình của bạn ở chế độ gỡ lỗi, sau đó bạn nhận được tab giao diện điều khiển nơi bạn có thể nhập mật khẩu của mình khi sử dụng getpass.

1

Thật không may, getpass() có xu hướng thất bại thảm hại (tôi đã thử nghiệm nó với IDLE và PyScripter mà không có bất kỳ thành công nào trên Python 3.4). Tôi sẽ đề nghị sử dụng passwordbox từ easygui - nó hoạt động tuyệt vời miễn là bạn không sử dụng ver. 0,98 (một cái gì đó là điều sai lầm ở đó), nó là an toàn để sử dụng ver. 0,96.

Tải xuống easygui ver. 0,96, giải nén nó vào một thư mục tạm thời, và từ thư mục đó cài đặt nó với:

python setup.py install 

và sử dụng passwordbox trong chương trình của bạn:

from easygui import passwordbox 
password = passwordbox("PASSWORD:") 
Các vấn đề liên quan