Tôi muốn đặt cờ tối ưu hóa (python -O myscript.py
) tại thời gian chạy trong tập lệnh python dựa trên đối số dòng lệnh cho tập lệnh như myscript.py --optimize
hoặc myscript --no-debug
. Tôi muốn bỏ qua các tuyên bố assert
mà không cần giải quyết tất cả chúng. Hoặc là có một cách tốt hơn để bỏ qua hiệu quả các phần của mã python. Có tương đương python cho #if
và #ifdef
trong C++ không?Có thể đặt cờ python -O (tối ưu hóa) trong một tập lệnh không?
10
A
Trả lời
12
-O
là cờ trình biên dịch, bạn không thể đặt cờ khi chạy vì tập lệnh đã được biên dịch rồi.
Python không có gì so sánh được với các macro trình biên dịch như #if
.
Chỉ cần viết một tập lệnh start_my_project.sh
đặt những cờ này.
6
#!/usr/bin/env python
def main():
assert 0
print("tada")
if __name__=="__main__":
import os, sys
if '--optimize' in sys.argv:
sys.argv.remove('--optimize')
os.execl(sys.executable, sys.executable, '-O', *sys.argv)
else:
main()
Các vấn đề liên quan
- 1. Tối ưu hóa cờ vua
- 2. gcc -O4 cờ tối ưu hóa
- 3. Tối ưu hóa Python (-O hoặc PYTHONOPTIMIZE) làm gì?
- 4. Cách tắt cờ tối ưu hóa cụ thể trong gcc
- 5. chế độ tối ưu hóa python
- 6. Việc sử dụng chế độ tối ưu hóa cơ bản của Python là gì? (python -O)
- 7. Tối ưu hóa rời rạc trong python
- 8. Tối ưu hóa bảng InnoDB w/o bảng khóa
- 9. Cờ tối ưu hóa GCC cho Intel Atom
- 10. Tối ưu hóa mã BeautifulSoup (Python)
- 11. Không thể tối ưu hóa bảng innoDB
- 12. Tìm hiểu cờ tối ưu hóa biên dịch từ tập tin thực thi
- 13. Có thể tối ưu hóa chức năng này không?
- 14. Mã này có thể được tối ưu hóa không?
- 15. Tôi có thể tối ưu hóa bản sao Mercurial không?
- 16. requirejs không còn tải tập lệnh cdn sau khi tối ưu hóa
- 17. Điều gì có thể làm cho mã F # không được tối ưu hóa nhanh hơn mã được tối ưu hóa?
- 18. Tối ưu hóa và cờ để tạo một thư viện tĩnh với g ++
- 19. Kiểm soát lập trình tối ưu hóa python?
- 20. LINQ tối ưu hóa trong một foreach
- 21. Trộn python với ngôn ngữ tối ưu để tối ưu hóa trong GAE
- 22. Sản phẩm chấm được tối ưu hóa trong Python
- 23. Xóa ppc khỏi cờ biên dịch trong tập lệnh cài đặt python
- 24. tối ưu hóa quadprog
- 25. Việc tối ưu hóa ORDER BY có hiệu lực trong câu lệnh SELECT sau đây không?
- 26. Tối ưu hóa CVPixelBufferRef
- 27. Vô hiệu hóa xác nhận của python() mà không cần cờ 0
- 28. Tối ưu hóa ViewState
- 29. Tối ưu hóa CALayer?
- 30. Làm thế nào để ngăn chặn gcc tối ưu hóa một số câu lệnh trong C?
Đó là vì bạn đã có đối số sai với 'os.execl()'. Đối số thứ hai là 'arg0' không phải' arg1'. Hãy thử sử dụng 'os.execl (sys.executable, sys.executable, '-O', * sys.argv)' hoặc trên thực tế khá nhiều chuỗi khác cho đối số thứ hai và nó sẽ hoạt động như bạn mong đợi. – Duncan
@Duncan: Tôi đã sửa các đối số. – jfs
yêu thích nó. tuyệt vời làm việc xung quanh. – hobs