Tôi đang cố gắng chạy tập lệnh python từ cron, nhưng nó không chạy đúng vì vậy tôi giả định biến env đường dẫn khác của nó. Có anyway để thay đổi biến trong một kịch bản python?làm cách nào để sửa đổi biến đường dẫn hệ thống trong tập lệnh python?
Trả lời
Bạn không cần phải đặt PATH từ bên trong tập lệnh python. Thay vào đó, hãy đặt một cái gì đó như
USER=joe
HOME=/home/joe
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/some/other/path
PYTHONPATH=/home/joe/pybin
MAILTO=joe
LANG=en_US.UTF-8
#min hr day mon dow
*/5 12 * * * reminder.py 'Eat lunch'
ở đầu crontab của bạn. Các biến môi trường này sẽ có sẵn cho tất cả các công việc cron chạy qua crontab của bạn.
ở trên cùng với công việc cron bên dưới? –
@Joe: yes; ngay ở trên cùng, với các dòng lệnh cron bên dưới. – unutbu
@ubuntu có cách tiếp cận đúng, nhưng đối với những gì nó có giá trị, @Joe Schmoe, nếu bạn cần các thông tin:
import sys
print sys.path
['.', '/usr/local/bin', '/usr/local/lib/python2.6/dist-packages',...]
sys.path.append('/home/JoeBlow/python_scripts')
print sys.path
['.', '/usr/local/bin', '/usr/local/lib/python2.6/dist-packages', '/home/JoeBlow/python_scripts',...]
sys.path là một mảng chứa tất cả mọi thứ đó là trong PYTHONPATH kịch bản bắt đầu của bạn biến (hoặc bất kỳ PYTHONPATH mặc định của shell của bạn).
Khi câu trả lời được chấp nhận hoạt động cho mục đích của OP và câu trả lời thứ hai là chính xác để cập nhật biến sys.path python, tôi nghĩ, nếu OP không thể sử dụng câu trả lời được chấp nhận (bởi vì, có một chính sách chống lại việc sửa đổi biến hệ điều hành PATH trên các máy xây dựng/thử nghiệm), một cái gì đó giống như this SO answer sẽ là những gì họ đang tìm kiếm. Tóm tắt các trường hợp đơn giản ở đây, để thay đổi các biến môi trường PATH OS:
app_path = os.path.join(root_path, 'other', 'dir', 'to', 'app')
os.environ["PATH"] += os.pathsep + app_path
Ít nhất, đây là những gì tôi đã hy vọng để tìm thấy khi tôi đọc câu hỏi.
+1 cho trường hợp bạn muốn đặt PATH (và PYTHONPATH là mã tương tự), mặc dù lưu ý rằng sys.path và os.environ ['PATH'] là/có thể khác nhau. – ntg
- 1. Python - Tạo một hệ thống "tập lệnh"
- 2. Sửa đường dẫn '../../' trong python
- 3. PHP - Chuyển đổi đường dẫn hệ thống tệp thành URL
- 4. Làm cách nào để sửa đổi đường dẫn tệp trong tập hợp các bản vá Git?
- 5. Làm thế nào để có được đường dẫn hệ thống tập tin dài từ python trên Windows
- 6. tăng hệ thống tập tin :: đường dẫn constructor std :: length_error
- 7. Cách chỉnh sửa đường dẫn xây dựng hệ thống trong Visual Studio 2005
- 8. Chuyển đổi đường dẫn URI sang đường dẫn hệ thống tệp tương đối trong .NET
- 9. Làm cách nào để có được đường dẫn của tập lệnh Python mà tôi đang chạy?
- 10. Làm thế nào tôi có thể chuyển đổi Assembly.CodeBase thành một đường dẫn hệ thống tập tin trong C#?
- 11. Hệ thống L cho mạng lưới đường bộ được sửa đổi như thế nào?
- 12. Làm thế nào để chỉnh sửa biến đường dẫn trong ZSH
- 13. đường dẫn tập lệnh groovy
- 14. Chạy lệnh hệ thống linux làm siêu người dùng, sử dụng tập lệnh python
- 15. C++ hệ thống linux lệnh
- 16. Làm cách nào để có được vị trí hệ thống tệp của tập lệnh PowerShell?
- 17. Cách lấy đường dẫn tập lệnh trong R?
- 18. Sửa đổi Đường dẫn Python cho Python3 chỉ
- 19. Làm thế nào để thiết lập hệ thống scons bao gồm đường dẫn
- 20. Trong tập lệnh Python, làm cách nào để đặt PYTHONPATH?
- 21. Cách đơn giản nhất để đặt tập lệnh python vào khay hệ thống (Windows)
- 22. Sửa đổi tập lệnh python để chạy trên mọi tệp trong thư mục
- 23. Làm thế nào để thay đổi đường dẫn của ghc?
- 24. Làm cách nào để chạy lệnh hệ thống trong Perl một cách không đồng bộ?
- 25. Python - cách kiểm tra tải hệ thống?
- 26. Làm cách nào để chạy các lệnh hệ thống Perl trong nền?
- 27. Mô-đun Python để thay đổi ngày giờ hệ thống
- 28. Làm cách nào để xuất biến môi trường phạm vi hệ thống trong bash
- 29. Làm thế nào để chạy một lệnh hệ thống trong Qt?
- 30. Cách chuyển tên đường dẫn sang tập lệnh Python bằng cách "thả" tệp/thư mục qua biểu tượng tập lệnh
Bạn nên cung cấp chi tiết hệ điều hành của mình. Ngoài ra, điều này có vẻ giống như một bản sao có thể có - tôi khuyên bạn nên tìm kiếm kỹ hơn. –
"Không chạy đúng" nghĩa là gì? Bạn có chắc chắn bạn thậm chí bắt đầu tập lệnh của mình (tức là nó có thể tìm thấy mã nhị phân python của bạn) –
Tôi đang làm rất nhiều Popen với các chương trình không có đường dẫn với chúng. –