Python 스크립트의 shebang (또는 마술 번호)에 이미있는 .pyc 파일을 만드는 것을 중단 할 수 있습니까? 작동하지Python이 shebang에서 pyc 파일을 생성하는 것을 중지하십시오.
:
#!/usr/bin/env python -B
Python 스크립트의 shebang (또는 마술 번호)에 이미있는 .pyc 파일을 만드는 것을 중단 할 수 있습니까? 작동하지Python이 shebang에서 pyc 파일을 생성하는 것을 중지하십시오.
:
#!/usr/bin/env python -B
, 우리는 파이썬 프로그램이 다소 POSIX 호환 시스템에서 실행되는 가정 (/ 빈/SH의 경우) 경우에만 예,이 작동합니다 :
이 ( 가 개선 glglgl의 입력 기준)
#!/bin/sh
"exec" "python" "-B" "$0" "[email protected]"
# The rest of the Python program follows below:
아아, 아니. 속임수는 실행 파일과 하나의 매개 변수를 제공하는 것으로 제한됩니다.
그래서 env
는 하나 개의 인수 대신 -B
와 python
두 개의 인수로 현재 파일로 주어진 파일로 python -B
을 실행하려고합니다.
원하는 목표를 달성 할 방법이 없습니다.
재미있는 부분은 Python Windows Launcher가이 제한에 대해 알지 못하고 올바르게 (un) 옵션을 전달한다는 것입니다. 그래서 한 번 파이썬은 윈도우에서 더 잘 작동합니다.) – lqc
env를 사용하는 대신 그녀의 파이썬 인터 패스 패스를 직접 입력하는 것이 가능합니다.
#!/usr/bin/python -B
당연히 이는 env를 사용하여 이식 할 때 얻을 수있는 이점 중 일부를 놓치게된다는 것을 의미합니다. wikipedia Shebang page의 env에서이 문제에 대한 토론이 있습니다. 그들은 python을 env 예제 중 하나로 사용합니다.
ENV에 대한 man 페이지에 따르면, 당신은 환경 변수를 설정 name=value
을 전달할 수 있습니다. PYTHONDONTWRITEBYTECODE
환경 변수는 파이썬이 .py [co] 파일을 쓰지 못하도록합니다 (-B
플래그와 동일 함, python
). 그래서
#!/usr/bin/env PYTHONDONTWRITEBYTECODE=1 python
을 사용해야합니다.
편집이 :
나는 간단한 파이썬 스크립트로이 테스트 :
#!/usr/bin/env PYTHONDONTWRITEBYTECODE=1 python
print 1
다음
$chmod +x test.py
$./test.py
1
$ls
test.py
(그러나 test.pyc
되지 않음)
저에게 스크립트는 단지 멈 춥니 다 ... –
그냥'python -B script.py'와 함께 작동합니까? 방금 간단한 스크립트를 테스트하고 나에게 잘 작동하는 것처럼 보였습니다. – asmeurer
나도. 이것은 작동하지 않는 것 같습니다. –
@VajkHermecz, 아니 내 질문이 많이 좀더 구체적으로. –
그래, 미안하면 더 좋은 용어 였을거야 ... 슬리 –
그것이 중복과 다른 의미를 가지고 있기 때문에 재개하기위한 투표. – o11c