Tôi đăng bài này như một câu trả lời vì tôi là người dùng mới và Stack Overflow sẽ không cho phép tôi bỏ phiếu.
Giải pháp của Sorin Sbarnea phù hợp với tôi trên OS X, Linux và Windows, và tôi rất biết ơn vì nó.
Tuy nhiên, tempfile.gettempdir () hoạt động theo một cách trong OS X và Windows và một cách khác trong một số / nhiều / tất cả (?) * Nixes khác (bỏ qua thực tế rằng OS X cũng là Unix!). Sự khác biệt là quan trọng đối với mã này.
OS X và Windows có các thư mục tạm thời dành riêng cho người dùng, vì vậy tệp tạm thời do một người dùng tạo sẽ không hiển thị với người dùng khác. Ngược lại, trong nhiều phiên bản * nix (tôi đã thử nghiệm Ubuntu 9, RHEL 5, OpenSolaris 2008 và FreeBSD 8), dir tạm thời là / tmp cho tất cả người dùng.
Điều đó có nghĩa là khi tệp khóa được tạo trên máy nhiều người dùng, tệp này được tạo trong / tmp và chỉ người dùng tạo tệp khóa lần đầu tiên mới có thể chạy ứng dụng.
Một giải pháp khả thi là nhúng tên người dùng hiện tại vào tên của tệp khóa.
Cần lưu ý rằng giải pháp lấy cổng của OP cũng sẽ hoạt động sai trên máy nhiều người dùng.