파이썬 바이너리 옵션


Python 바이너리 옵션
404는 파일을 찾을 수 없음을 나타냅니다. 이미 파일을 업로드 한 경우 이름의 철자가 잘못되었거나 다른 폴더에 있습니다.
기타 가능한 원인.
Hot Link Protection이 켜져 있고 도메인이 승인 된 도메인 목록에 없기 때문에 이미지에 404 오류가 발생할 수 있습니다.
임시 URL (ip /
username /)을 사용하고이 오류가 발생하면. htaccess 파일에 저장된 규칙 세트에 문제가있을 수 있습니다. 해당 파일의 이름을. htaccess-backup으로 변경하고 사이트를 새로 고쳐 문제가 해결되는지 확인할 수 있습니다.
실수로 문서 루트를 삭제했거나 계정을 다시 만들어야 할 수도 있습니다. 어느 쪽이든, 즉시 귀하의 웹 호스트에게 문의하십시오.
WordPress를 사용하고 있습니까? WordPress의 링크를 클릭 한 후 404 오류 섹션을 참조하십시오.
정확한 철자 및 폴더를 찾는 방법.
누락 또는 파손 된 파일.
404 오류가 발생하면 브라우저에서 사용하려고 시도하고있는 URL을 확인하십시오. 이는 요청을 시도해야하는 자원을 서버에 알려줍니다.
이 예제에서 파일은 public_html / example / Example /
CaSe는이 예제에서 중요합니다. 대 / 소문자를 구분하는 플랫폼 및 예제에서는 동일한 위치가 아닙니다.
애드온 도메인의 경우 파일은 public_html / addondomain / example / Example /에 있어야하며 이름은 대소 문자를 구분합니다.
깨진 이미지.
사이트에 누락 된 이미지가있는 경우 이미지가 누락 된 빨간색 X가있는 상자가 페이지에 나타날 수 있습니다. X를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하십시오. 속성은 찾을 수없는 경로와 파일 이름을 알려줍니다.
이것은 브라우저에 따라 다르며 페이지에 빨간색 X가 표시된 상자가 보이지 않으면 페이지를 마우스 오른쪽 단추로 클릭 한 다음 페이지 정보보기를 선택하고 미디어 탭으로 이동하십시오.
이 예제에서 이미지 파일은 public_html / cgi-sys / images /에 있어야합니다.
CaSe는이 예제에서 중요합니다. 대 / 소문자 구분 PNG 및 PNG를 적용하는 플랫폼에서는 동일한 위치가 아닙니다.
WordPress 링크 클릭 후 404 오류.
WordPress로 작업 할 때 404 페이지를 찾을 수 없음 오류는 새 테마가 활성화되거나. htaccess 파일의 다시 쓰기 규칙이 변경 될 때 자주 발생합니다.
WordPress에서 404 오류가 발생하면이를 수정하기위한 두 가지 옵션이 있습니다.
옵션 1 : 퍼머 링크를 수정하십시오.
WordPress에 로그인하십시오. WordPress의 왼쪽 탐색 메뉴에서 설정 & gt; Permalinks (현재 설정에주의하십시오. 사용자 지정 구조를 사용하는 경우 사용자 지정 구조를 복사하거나 저장하십시오.) 기본값을 선택하십시오. 설정 저장을 클릭하십시오. 설정을 이전 구성으로 다시 변경하십시오 (기본값을 선택하기 전에). 네가 가지고 있다면 커스텀 구조체를 되 돌린다. 설정 저장을 클릭하십시오.
이렇게하면 많은 경우에 퍼머 링크가 재설정되고 문제가 해결됩니다. 그래도 작동하지 않으면. htaccess 파일을 직접 편집해야 할 수 있습니다.
옵션 2 :.htaccess 파일을 수정하십시오.
다음 코드 스 니펫을. htaccess 파일의 맨 위에 추가하십시오.
RewriteRule ^ index. php $ - [L]
RewriteRule. /index. php [L]
블로그가 링크에 잘못된 도메인 이름을 표시하거나 다른 사이트로 리디렉션되거나 이미지와 스타일이 누락 된 경우 일반적으로 WordPress 블로그에 잘못된 도메인 이름이 구성되어 있습니다.
.htaccess 파일을 수정하는 방법.
.htaccess 파일에는 서버에 특정 시나리오에서 작동하는 방법을 알려주고 웹 사이트 기능에 직접적인 영향을주는 지시문 (지침)이 포함되어 있습니다.
URL 리디렉션 및 다시 쓰기는. htaccess 파일에서 발견되는 두 가지 매우 일반적인 지시문이며 WordPress, Drupal, Joomla 및 Magento와 같은 많은 스크립트는. htaccess에 지시문을 추가하므로 해당 스크립트가 작동 할 수 있습니다.
다양한 이유로 인해. htaccess 파일을 편집해야 할 수도 있습니다. 이 섹션에서는 cPanel에서 파일을 편집하는 방법에 대해 다루지 만 변경해야 할 내용은 다루지 않습니다 (다른 기사를 참조해야 할 수도 있습니다. 해당 정보에 대한 리소스).
.htaccess 파일을 편집하는 방법에는 여러 가지가 있습니다.
컴퓨터에서 파일 편집 및 FTP를 통해 서버에 업로드 FTP 프로그램의 편집 모드 사용 SSH 및 텍스트 편집기 사용 cPanel에서 파일 관리자를 사용하십시오.
대부분의 사람들을 위해. htaccess 파일을 편집하는 가장 쉬운 방법은 cPanel의 파일 관리자를 이용하는 것입니다.
cPanel의 파일 관리자에서. htaccess 파일을 편집하는 방법.
어떤 일을하기 전에 무언가가 잘못 될 경우 이전 버전으로 되돌릴 수 있도록 웹 사이트를 백업하는 것이 좋습니다.

파이썬 - 파일 I / O.
이 장에서는 파이썬에서 사용할 수있는 모든 기본 I / O 기능에 대해 설명합니다. 더 많은 함수를 보려면 표준 파이썬 문서를 참조하십시오.
화면에 인쇄.
출력을 생성하는 가장 간단한 방법은 쉼표로 구분 된 0 개 이상의 표현식을 전달할 수있는 print 문을 사용하는 것입니다. 이 함수는 전달한 표현식을 문자열로 변환하고 결과를 다음과 같이 표준 출력에 씁니다.
그러면 표준 화면에서 다음 결과가 표시됩니다.
키보드 입력 읽기.
파이썬은 표준 입력에서 한 줄의 텍스트를 읽는 두 가지 내장 함수를 제공합니다. 이 함수는 기본적으로 키보드에서 제공됩니다. 이러한 기능은 & 마이너스입니다.
raw_input 함수.
raw_input ([prompt]) 함수는 표준 입력에서 한 줄을 읽어서 그 줄을 (줄 바꿈 줄을 지우면서) 문자열로 반환한다.
그러면 문자열을 입력하라는 메시지가 나타나고 화면에 동일한 문자열이 표시됩니다. 필자가 "Hello Python!"을 입력하면 결과는이 & 마이너스와 같습니다.
입력 기능.
input ([prompt]) 함수는 입력이 유효한 Python 표현식이라고 가정하고 평가 된 결과를 반환한다는 점을 제외하고는 raw_input과 같습니다.
그러면 입력 된 입력에 대해 다음 결과가 생성됩니다.
파일 열기 및 닫기.
지금까지 표준 입력 및 출력에 대해 읽고 쓰는 중이었습니다. 이제 실제 데이터 파일을 사용하는 방법을 살펴 보겠습니다.
파이썬은 기본적으로 파일을 조작하는 데 필요한 기본 함수와 메소드를 제공합니다. 대부분의 파일 조작은 파일 오브젝트를 사용하여 수행 할 수 있습니다.
오픈 기능.
파일을 읽거나 쓸 수 있으려면 먼저 파이썬의 내장 open () 함수를 사용하여 파일을 열어야합니다. 이 함수는 관련된 다른 지원 메소드를 호출하는 데 사용되는 파일 객체를 작성합니다.
다음은 매개 변수 세부 정보 및 마이너스입니다.
파일 이름 & 마이너스; file_name 인수는 액세스하려는 파일의 이름이 들어있는 문자열 값입니다.
access_mode & 마이너스; access_mode는 파일을 열어야하는 모드, 즉 읽기, 쓰기, 추가 등을 결정합니다. 가능한 값의 전체 목록이 아래 표에 나와 있습니다. 이것은 선택적 매개 변수이며 기본 파일 액세스 모드는 읽기 (r)입니다.
버퍼링 및 마이너스; 버퍼링 값이 0으로 설정되면 버퍼링이 수행되지 않습니다. 버퍼링 값이 1이면 파일에 액세스하는 동안 라인 버퍼링이 수행됩니다. 버퍼링 값을 1보다 큰 정수로 지정하면 지정된 버퍼 크기로 버퍼링 동작이 수행됩니다. 음수 인 경우 버퍼 크기는 시스템 기본값입니다 (기본 동작).
다음은 파일 & 마이너스를 여는 다양한 모드의 목록입니다.
읽기 전용 파일을 엽니 다. 파일 포인터는 파일의 시작 부분에 있습니다. 이것은 기본 모드입니다.
바이너리 형식으로 읽기 전용 파일을 엽니 다. 파일 포인터는 파일의 시작 부분에 있습니다. 이것은 기본 모드입니다.
읽기 및 쓰기 용 파일을 엽니 다. 파일 포인터는 파일의 시작 부분에 있습니다.
바이너리 형식으로 읽기 및 쓰기 용 파일을 엽니 다. 파일 포인터는 파일의 시작 부분에 있습니다.
쓰기 전용 파일을 엽니 다. 파일이 있으면 파일을 덮어 씁니다. 파일이 존재하지 않으면 새로운 파일을 작성합니다.
바이너리 형식으로 쓰기 전용 파일을 엽니 다. 파일이 있으면 파일을 덮어 씁니다. 파일이 존재하지 않으면 새로운 파일을 작성합니다.
쓰기와 읽기 모두를위한 파일을 엽니 다. 파일이있는 경우 기존 파일을 덮어 씁니다. 파일이 없으면 읽기 및 쓰기 용으로 새 파일을 만듭니다.
바이너리 형식의 쓰기 및 읽기 용 파일을 엽니 다. 파일이있는 경우 기존 파일을 덮어 씁니다. 파일이 없으면 읽기 및 쓰기 용으로 새 파일을 만듭니다.
추가 할 파일을 엽니 다. 파일 포인터는 파일이있는 경우 파일의 끝에 있습니다. 즉, 파일이 추가 모드에 있습니다. 파일이 없으면 쓰기 용으로 새 파일을 작성합니다.
바이너리 형식으로 추가 할 파일을 엽니 다. 파일 포인터는 파일이있는 경우 파일의 끝에 있습니다. 즉, 파일이 추가 모드에 있습니다. 파일이 없으면 쓰기 용으로 새 파일을 작성합니다.
추가 및 읽기 모두를위한 파일을 엽니 다. 파일 포인터는 파일이있는 경우 파일의 끝에 있습니다. 파일이 추가 모드로 열립니다. 파일이 없으면 읽기 및 쓰기 용으로 새 파일을 작성합니다.
바이너리 형식으로 파일을 추가하거나 읽을 수 있도록 엽니 다. 파일 포인터는 파일이있는 경우 파일의 끝에 있습니다. 파일이 추가 모드로 열립니다. 파일이 없으면 읽기 및 쓰기 용으로 새 파일을 작성합니다.
오브젝트의 속성.
파일이 열리고 하나의 파일 객체가 있으면 해당 파일과 관련된 다양한 정보를 얻을 수 있습니다.
다음은 파일 객체 & 마이너스에 관련된 모든 속성 목록입니다.
파일이 닫으면 true를 반환하고 그렇지 않으면 false를 반환합니다.
파일이 열린 액세스 모드를 반환합니다.
파일의 이름을 반환합니다.
print에 명시 적으로 스페이스가 필요한 경우는 false를, 그렇지 않은 경우는 false를 돌려줍니다.
그러면 다음과 같은 결과가 생깁니다.
close () 메서드.
파일 객체의 close () 메소드는 씌어지지 않은 정보를 플러시하고 파일 객체를 닫습니다. 그 후에는 더 이상 쓰기를 수행 할 수 없습니다.
파이썬은 파일의 참조 객체가 다른 파일에 재 할당 될 때 자동으로 파일을 닫습니다. close () 메서드를 사용하여 파일을 닫는 것이 좋습니다.
예.
그러면 다음과 같은 결과가 생깁니다.
파일 읽기 및 쓰기.
파일 객체는 우리의 삶을 편하게 해주는 접근 방법 세트를 제공합니다. read () 및 write () 메서드를 사용하여 파일을 읽고 쓰는 방법을 알 수 있습니다.
write () 메서드.
write () 메서드는 열려있는 파일에 문자열을 씁니다. Python 문자열은 텍스트가 아닌 바이너리 데이터를 가질 수 있다는 점에 유의해야합니다.
write () 메서드는 줄 바꿈 문자 ( '\ n')를 문자열의 끝에 추가하지 않습니다.
여기에서 전달 된 매개 변수는 열린 파일에 기록 될 내용입니다.
위의 방법은 foo. txt 파일을 만들고 해당 파일에 주어진 내용을 쓰고 마지막으로 해당 파일을 닫습니다. 이 파일을 열면 다음과 같은 내용을 갖게됩니다.
read () 메서드.
read () 메서드는 열린 파일에서 문자열을 읽습니다. 파이썬 문자열은 바이너리 데이터를 가질 수 있다는 점에 유의해야한다. 텍스트 데이터를 제외하고
여기에서 전달 된 매개 변수는 열린 파일에서 읽을 바이트 수입니다. 이 메소드는 파일의 시작 부분부터 읽기를 시작하고 count가 누락 된 경우 파일 끝까지 가능한 한 읽기를 시도합니다.
위에서 만든 foo. txt 파일을 가져와 봅시다.
그러면 다음과 같은 결과가 생깁니다.
파일 위치.
tell () 메소드는 파일 내의 현재 위치를 알려줍니다. 다시 말하면, 다음 읽기 또는 쓰기는 파일의 처음부터 그 많은 바이트에서 발생합니다.
seek (offset [, from]) 메서드는 현재 파일 위치를 변경합니다. offset 인수는 이동할 바이트 수를 나타냅니다. from 인수는 바이트가 이동 될 기준 위치를 지정합니다.
from을 0으로 설정하면 파일의 시작을 참조 위치로 사용하고 1은 현재 위치를 참조 위치로 사용하고 2로 설정하면 파일의 끝을 참조 위치로 취합니다 .
위에 작성한 foo. txt 파일을 가져와 봅시다.
그러면 다음과 같은 결과가 생깁니다.
파일 이름 바꾸기 및 삭제.
Python os 모듈은 파일 이름 바꾸기 및 삭제와 같은 파일 처리 작업을 수행하는 데 도움이되는 메소드를 제공합니다.
이 모듈을 사용하려면 먼저 모듈을 가져와야하며 관련 기능을 호출 할 수 있습니다.
rename () 메서드.
rename () 메소드는 현재 파일 이름과 새 파일 이름의 두 인수를 취합니다.
예.
다음은 기존 파일 test1.txt의 이름을 바꾸는 예제입니다.
remove () 메서드.
remove () 메서드를 사용하여 삭제할 파일의 이름을 인수로 제공하여 파일을 삭제할 수 있습니다.
예.
다음은 기존 파일 인 test2.txt &를 삭제하는 예입니다.
파이썬의 디렉토리.
모든 파일은 여러 디렉토리에 포함되어 있으며 Python은 이러한 디렉토리도 처리 할 수 ​​있습니다. os 모듈에는 디렉토리를 작성, 제거 및 변경하는 데 도움이되는 몇 가지 메소드가 있습니다.
mkdir () 메서드.
os 모듈의 mkdir () 메소드를 사용하여 현재 디렉토리에 디렉토리를 작성할 수 있습니다. 생성 될 디렉토리의 이름을 포함하는이 메소드에 인수를 제공해야합니다.
예.
다음은 현재 디렉토리에 디렉토리 테스트를 생성하는 예제입니다.
chdir () 메소드.
chdir () 메소드를 사용하여 현재 디렉토리를 변경할 수 있습니다. chdir () 메소드는 현재 디렉토리를 만들려는 디렉토리의 이름 인 인수를 취합니다.
예.
다음은 "/ home / newdir"디렉토리 & 마이너스로 이동하는 예제입니다.
getcwd () 메소드.
getcwd () 메소드는 현재 작업 디렉토리를 표시합니다.
예.
다음은 현재 디렉토리 & 마이너스를주는 예제입니다.
rmdir () 메소드.
rmdir () 메소드는 메소드에서 인수로 전달되는 디렉토리를 삭제합니다.
디렉토리를 제거하기 전에 디렉토리의 모든 내용을 제거해야합니다.
예.
다음은 "/ tmp / test"디렉토리를 제거하는 예제입니다. 디렉토리의 완전한 이름을 지정해야하며, 그렇지 않으면 현재 디렉토리에서 해당 디렉토리를 검색합니다.
파일 & amp; 디렉토리 관련 메소드.
세 가지 중요한 소스가 있는데, 파일 및 파일을 처리하고 조작 할 수있는 다양한 유틸리티 메소드를 제공합니다. Windows 및 Unix 운영 체제의 디렉토리. 그것들은 다음과 같다.
파일 객체 메소드 : 파일 객체는 파일을 조작하는 함수를 제공합니다.
OS Object Methods : 이것은 파일과 디렉토리를 처리하는 메소드를 제공합니다.

Python 바이너리 옵션
App Store를 통해 가져 오기 우리의 응용 프로그램 에서이 게시물을 읽으십시오!
이진 문자열 비교.
저는 파이썬을 배우는 중입니다. 언어를 배우는 가장 좋은 방법은 그것을 사용하는 것입니다. 그래서 나는 바이너리 단어를 비교하여 회색이 무엇인지 판별하는 스크립트를 만들 줄 알았습니다.
다른 비트가 하나 있다면 숫자 바이너리 코드를 기록해야한다. 예를 들어, N = 3이면 이진 코드는 000, 001, 010, 011, 100, 101, 110, 111입니다.
첫 번째 이진 코드를 010으로 선택한 경우 코드는 결과로 110, 000, 011을 반환해야하며, 0,3,6 (또는 1,4,7) 인 것이 더 바람직합니다.
내 질문은 이것이다 :
이것을 수행하는 가장 좋은 방법은 무엇입니까? 대부분은 가장 빠른 코드를 목표로합니다.
내 이유는 당신 중 일부는 이것을 수행하는 최적의 방법에 대한 더 좋은 아이디어를 가지고있을 것이고 나는 그 코드와 이것을 비교할 수있을 것이고 이것은 훨씬 더 많이 가르쳐 줄 것입니다.
이것은 이진 계산 문제이므로 (기묘한 입력이 있음) 발전기, 목록 보급 및 itertools와 같은 파이썬 도구를 적용 할 수있는 영역이 아닙니다.
출력을 정렬하려면 (예 : 6,0,3 대신 0,3,6) 다음을 사용하십시오.
첫 번째 답변으로 내 첫 시도를 게시하고 싶었지만 웹 사이트에서 약 8 시간 동안 나를 차단했으며 지금 답장을 할 수있었습니다. 나는 코드를 더 중요한 발췌 문장으로 분할했다.
이것은 지금까지의 시도입니다.
아래 코드에서 다음 모드를 수행해야한다고 생각합니다.
이진수 목록을 작성하려는 시도는 다음과 같습니다 (아직 dicts를 사용하지 않음).
그런 다음 각 문자열을 나머지 문자열과 비교하기위한 for 루프를 실행하십시오 (현재는 그렇지 않습니다)
문자열 XOR 내가 interwebs에 대한 하나의 elses 코드에서 얻은 TrueFalseTrue를 반환합니다 (일치하지 않는 비트 수를 retrun 필요)

5. 빌드 생성하기 ¶
“built distribution”는 (당신의 배경에 따라서) “binary package” 또는 “installer†as로 생각하기 위하여 아마 사용 된 you†™ re 무엇이다. It†™ s는 반드시 바이너리는 아니지만 파이썬 소스 코드 및 / 또는 바이트 코드 만 포함 할 수 있기 때문에 반드시 필요하지는 않습니다. 그 단어는 이미 파이썬에서 사용 되었기 때문에 우리는 don†™ t 그것을 패키지라고 부릅니다. (그리고 “installer†a는 주류 데스크탑 시스템의 세계에 특정한 용어입니다.)
빌드 된 배포판은 모듈 배포판 설치자가 RPM 기반 Linux 시스템을 사용하는 경우 바이너리 RPM을 쉽게 사용할 수 있도록하는 방법입니다. Windows 사용자를 위해, it†™ s 실행 가능한 설치자; 데비안 기반의 리눅스 사용자는 it†™ s 데비안 패키지; 기타 등등. 분명히 태양 아래서 모든 플랫폼에 대한 배포판을 만들 수있는 사람은 아무도 없으므로 Distutils는 모듈 개발자가 specialities†"코드 작성 및 소스 배포판 작성"에 집중할 수 있도록 설계되었습니다. 반면 패키지 작성자라는 중개자 종은 꾸러미가있는 플랫폼만큼 많은 소스 배포판을 빌트인 배포판으로 바꿔라.
물론, 모듈 개발자는 자신의 패키지 도구 일 수 있습니다. 또는 포장업자는 원 개발자가하지 않는 플랫폼에 액세스 할 수있는 자원 봉사자가 될 수 있습니다. 또는 정기적으로 새로운 소스 배포본을 가져 와서 소프트웨어가 액세스 할 수있는 많은 플랫폼을위한 빌드로 배포 할 수 있습니다. 패키지 작성자는 누구인지에 관계없이 설치 스크립트와 bdist 명령 그룹을 사용하여 빌드 된 배포를 생성합니다.
간단한 예로, Distutils 소스 트리에서 다음 명령을 실행하면 :
Distutils는 내 모듈 배포판 (이 경우 Distutils 자체)을 빌드하고 (또한 빌드 디렉토리에) “fake” 설치를 수행하고, 내 플랫폼에 기본 빌드 유형을 작성합니다. 빌드 된 배포판의 기본 형식은 Unix의 “dumb” tar 파일과 Windows의 간단한 실행 파일 설치 프로그램입니다. (이 tar 파일은 특정 위치에 압축을 풀어야하기 때문에 “dumb†considered로 간주됩니다.)
따라서 위의 명령은 Unix 시스템에서 Distutils-1.0을 만듭니다. plat. tar. gz; 올바른 위치에서이 tarball을 푸는 것은 소스 배포판을 다운로드하고 python setup. py install을 실행하는 것처럼 Distutils를 설치합니다. (“right place”는 bdist_dumb 명령에 주어진 옵션에 따라 파일 시스템의 루트 또는 Python в ™ ™ 접두어 디렉토리이며, 기본값은 접두어에 상대적으로 벙어리 분포를 만드는 것입니다.)
분명히 순수한 Python 배포판의 경우이 isn†™ t는 python setup. py install †"을 실행하는 것보다 간단하지만 컴파일 할 필요가있는 확장을 포함하는 비 순수 배포판의 경우 누군가와 확장 기능을 사용할지 여부를 결정하십시오. RPM 패키지 나 Windows 용 실행 설치 프로그램과 같은 “smart” 빌드를 만드는 것은 배포판에 확장 기능이 포함되어 있더라도 훨씬 더 편리합니다.
bdist 명령은 sdist 명령과 유사한 --formats 옵션을 가지고 있습니다. 이 옵션을 사용하여 생성 할 빌드 된 배포 유형을 선택할 수 있습니다. 예를 들어,
Unix 시스템에서 실행할 때 Distutils-1.0을 만들 수 있습니다. plat. zip †다시 한번, 이 아카이브는 루트 디렉토리에서 압축을 풀어 Distutils를 설치합니다.
빌드 된 배포판에 사용할 수있는 형식은 다음과 같습니다.
Windows에서 유닉스 디폴트의 기본값은 외부 유틸리티가 필요하다 : tar 그리고 아마도 gzip, bzip2 또는 compress 중 하나는 외부 zip 유틸리티 또는 zipfile 모듈 (Python 1.6 이후의 표준 파이썬 라이브러리의 일부)을 필요로한다. 외부 rpm 유틸리티, 버전 3.0.4 또는 더 좋음 (rpm --version을 사용하여 가지고있는 버전 확인)
don†™ t는 --formats 옵션과 함께 bdist 명령을 사용해야합니다. 당신은 또한 당신이 관심을 가지고있는 형식을 직접적으로 구현하는 명령을 사용할 수 있습니다. 이러한 bdist “sub-commands†Some 중 일부는 실제로 몇 가지 유사한 형식을 생성합니다. 예를 들어, bdist_dumb 명령은 모든 вњњdumb” 아카이브 형식 (tar, ztar, gztar 및 zip)을 생성하고 bdist_rpm은 2 진 및 소스 RPM을 생성합니다. bdist 하위 명령과 각 명령에 의해 생성 된 형식은 다음과 같습니다.
다음 절에서는 개별 bdist_ * 명령에 대해 자세히 설명합니다.
5.1. 벙어리 내장 배포판 만들기 ¶
5.2. RPM 패키지 만들기 ¶
RPM 형식은 Red Hat, SuSE 및 Mandrake를 비롯한 많은 유명 Linux 배포판에서 사용됩니다. 이 중 하나 (또는 ​​다른 RPM 기반 Linux 배포판 중 하나)가 일반적인 환경 인 경우 동일한 배포본을 가진 다른 사용자를위한 RPM 패키지를 만드는 것이 쉽습니다. 모듈 배포의 복잡성과 Linux 배포판의 차이점에 따라 다른 RPM 기반 배포에서 작동하는 RPM을 만들 수도 있습니다.
모듈 배포판의 RPM을 만드는 일반적인 방법은 bdist_rpm 명령을 실행하는 것입니다.
또는 --format 옵션과 함께 bdist 명령을 사용하십시오.
전자는 RPM 특정 옵션을 지정할 수있게합니다. 후자를 사용하면 한 번에 여러 형식을 쉽게 지정할 수 있습니다. 두 가지 작업을 모두 수행해야하는 경우 여러 bdist_ * 명령과 해당 옵션을 명시 적으로 지정할 수 있습니다.
RPM 패키지를 생성하는 것은. spec 파일에 의해 구동되며, Distutils는 설치 스크립트에 의해 구동됩니다. 일상적인 작업을 쉽게하기 위해 bdist_rpm 명령은 일반적으로 설치 스크립트, 명령 줄 및 모든 Distutils 구성 파일에서 제공 한 정보를 기반으로. spec 파일을 만듭니다..spec 파일의 다양한 옵션과 섹션은 다음과 같이 설치 스크립트의 옵션에서 파생됩니다.
또한,.spec 파일에는 don†™ t에 해당하는 옵션이 설치 스크립트에있는 많은 옵션이 있습니다. 이들 중 대부분은 다음과 같이 bdist_rpm 명령에 대한 옵션을 통해 처리됩니다.
분명히 명령 줄에서 이러한 옵션 중 일부만 제공하는 것은 지루하고 오류가 발생하기 쉽기 때문에 보통 설치 구성 파일 인 setup. cfg에 넣는 것이 가장 좋습니다. "절에서 설치 구성 파일 작성을 참조하십시오. 많은 Python 모듈 배포판을 배포하거나 패키지로 묶어 놓은 경우, 모든 Python 모듈 배포판에 적용되는 옵션을 개인 Distutils 구성 파일 (예 :
/.pydistutils. cfg). 이 파일을 일시적으로 비활성화하려면 no-user-cfg 옵션을 setup. py에 전달하면됩니다.
바이너리 RPM 패키지를 만드는 세 단계가 있으며, 모두 Distutils에 의해 자동으로 처리됩니다 :
패키지를 설명하는. spec 파일을 생성합니다 (Distutils 설정 스크립트와 유사합니다. 실제로, 설정 스크립트의 많은 정보가. spec 파일에 포함됩니다) 소스 RPM을 작성하여 “binary” RPM을 생성하십시오 모듈 배포판에 Python 확장이 포함되어 있는지 여부에 따라 이진 코드가 포함되지 않음)
일반적으로 RPM은 마지막 두 단계를 하나로 묶습니다. Distutils를 사용할 때, 세 단계는 모두 함께 번들됩니다.
원하는 경우이 세 단계를 분리 할 수 ​​있습니다. --spec-only 옵션을 사용하면 bdist_rpm이. spec 파일을 만들고 종료 할 수 있습니다. 이 경우. spec 파일은 배포 디렉토리 Ӡ"보통 dist /에 작성되지만 --dist-dir 옵션을 사용하여 사용자 정의 할 수 있습니다. (일반적으로. spec 파일은 bdist_rpm에 의해 생성 된 임시 디렉토리에있는 вњњbuild 트리 깊숙이 쌓여 있습니다.)
5.3. Windows 설치 프로그램 만들기 ¶
실행 가능한 설치 프로그램은 Windows의 바이너리 배포판을위한 자연스러운 형식입니다. 멋진 그래픽 사용자 인터페이스를 표시하고 설치 스크립트의 메타 데이터에서 설치 될 모듈 배포에 대한 정보를 표시하고 사용자가 몇 가지 옵션을 선택하도록 허용하고 설치를 시작하거나 취소합니다.
설치 스크립트에서 가져온 메타 데이터이므로 Windows 설치 프로그램을 만드는 일은 일반적으로 다음과 같이 간단합니다.
또는 --formats 옵션과 함께 bdist 명령을 사용하십시오.
순수 모듈 배포판 (pure Python 모듈과 패키지 만 포함)을 사용하는 경우 결과 설치 프로그램은 버전 독립적이며 foo-1.0.win32.exe와 같은 이름을 갖습니다. 이러한 설치 프로그램은 Unix 플랫폼 또는 Mac OS X에서도 만들 수 있습니다.
비 순수 배포판을 사용하는 경우 확장은 Windows 플랫폼에서만 만들 수 있으며 Python 버전에 따라 다릅니다. 설치 프로그램 파일 이름은이를 반영하며 foo-1.0.win32-py2.0.exe 형식을 갖습니다. 지원하려는 모든 Python 버전에 대해 별도의 설치 프로그램을 만들어야합니다.
설치 프로그램은 정상 및 최적화 모드에서 대상 시스템에 설치 한 후 순수 모듈을 바이트 코드로 컴파일하려고 시도합니다. 어떤 이유로이 작업을 수행하지 않으려면 --no-target-compile 및 / 또는 --no-target-optimize 옵션을 사용하여 bdist_wininst 명령을 실행할 수 있습니다.
기본적으로 설치 프로그램은 실행될 때 Cool Python Powered” 로고를 표시하지만, --bitmap 옵션을 사용하여 Windows. bmp 파일이어야하는 자신의 152x261 비트 맵을 제공 할 수도 있습니다.
설치 프로그램은 실행될 때 데스크탑 배경 창에 큰 제목을 표시합니다. 이 제목은 배포판의 이름과 버전 번호로 구성됩니다. 이것은 --title 옵션을 사용하여 다른 텍스트로 변경할 수 있습니다.
설치 프로그램 파일은 배포 디렉토리 ” в х "보통 dist /에 작성되지만 --dist-dir 옵션을 사용하면 사용자 정의 할 수 있습니다.
5.4. Windows에서 크로스 컴파일 ¶
Python 2.6부터 distutils는 Windows 플랫폼간에 크로스 컴파일이 가능합니다. 실제로 이것은 올바른 도구를 설치하면 32 비트 버전의 Windows를 사용하여 64 비트 확장을 만들거나 그 반대로 설치할 수 있음을 의미합니다.
대체 플랫폼을 빌드하려면 build 명령에 --plat-name 옵션을 지정하십시오. 유효한 가치는 현재 вЂwinwin32†™, вЂwinwin amd64†™ 및 вЂwinwin ia64†™입니다. 예를 들어 32 비트 버전의 Windows에서는 다음을 실행할 수 있습니다.
확장 프로그램의 64 비트 버전을 빌드하십시오. Windows Installer는이 옵션도 지원하므로 다음 명령을 사용하십시오.
32 비트 버전의 Windows에서 64 비트 설치 실행 파일을 만듭니다.
크로스 컴파일하려면 파이썬 소스 코드를 다운로드하고 대상 플랫폼에 맞게 파이썬 자체를 크로스 컴파일해야합니다. 파이썬의 바이너리 설치에서는 불가능합니다 (다른 플랫폼의. lib 파일 등은 포함되어 있지 않습니다). 실제로 이는 32 비트 운영 체제 사용자가 Visual Studio 2008을 사용하여 Python 소스 트리에서 PCBuild / PCbuild. sln 솔루션을 열고 크로스 컴파일 전에 вЂ~pythoncore†™ 프로젝트의 “x64” 구성을 구축해야 함을 의미합니다 확장이 가능합니다.
기본적으로 Visual Studio 2008은 64 비트 컴파일러 나 도구를 설치하지 않습니다. Visual Studio 설치 프로세스를 다시 실행하고 이러한 도구를 선택해야 할 수 있습니다 (제어판 -> [추가 / 제거] 프로그램을 사용하면 기존 설치를 확인하거나 수정할 수있는 편리한 방법입니다).
5.4.1. 사후 설치 스크립트 ¶
Python 2.3부터는 postinstallation 스크립트를 --install-script 옵션과 함께 지정할 수 있습니다. 스크립트의 기본 이름을 지정해야하며 스크립트 filename은 setup 함수의 scripts 인수에도 나열되어야합니다.
이 스크립트는 argv [1]을 - install으로 설정하고 모든 파일을 복사 한 후 대상 시스템에서 설치시 실행되며 argv [1]을 - remove로 설정하여 파일을 제거하기 전에 제거시 다시 실행됩니다.
설치 스크립트는 Windows Installer에 내장되어 실행되며 모든 출력 (sys. stdout, sys. stderr)은 버퍼로 리디렉션되며 스크립트가 끝난 후 GUI에 표시됩니다.
이 컨텍스트에서 특히 유용한 일부 기능은 설치 스크립트에서 추가 내장 기능으로 사용할 수 있습니다.
directory_created (경로) ¶ file_created (경로) ¶
이 함수는 설치시 postinstall 스크립트에 의해 디렉토리 나 파일이 생성 될 때 호출되어야합니다. 제거 프로그램과 경로를 등록하므로 배포를 제거 할 때 제거됩니다. 안전을 기하기 위해 디렉토리는 비어있는 경우에만 제거됩니다.
이 기능은 Windows에서 시작 메뉴 또는 바탕 화면과 같은 특수 폴더 위치를 검색하는 데 사용할 수 있습니다. 폴더에 대한 전체 경로를 반환합니다. csidl_string은 다음 문자열 중 하나 여야합니다.
폴더를 검색 할 수 없으면 OSError가 발생합니다.
사용 가능한 폴더는 정확한 Windows 버전과 구성에 따라 다릅니다. 자세한 내용은 SHGetSpecialFolderPath () 함수에 대한 Microsoft в ™ ™ 설명서를 참조하십시오.
이 함수는 바로 가기를 만듭니다. target은 바로 가기로 시작될 프로그램의 경로입니다. description은 바로 가기에 대한 설명입니다. filename은 사용자가 볼 수있는 바로 가기의 제목입니다. arguments는 명령 줄 인수를 지정합니다 (있는 경우). workdir은 프로그램의 작업 디렉토리입니다. iconpath는 바로 가기 아이콘을 포함하는 파일이고 iconindex는 파일 iconpath에있는 아이콘의 색인입니다. 자세한 내용은 IShellLink 인터페이스에 대한 Microsoft 설명서를 참조하십시오.
5.5. Vista 사용자 액세스 제어 (UAC) ¶
파이썬 2.6부터 bdist_wininst는 --user-access-control 옵션을 지원합니다. 기본값은 в~nnone†™ (UAC 처리가 수행되지 않음을 의미)이며 다른 유효한 값은 †~auto†™ (모든 사용자에 대해 Python이 설치된 경우 UAC 고도에 대한 프롬프트를 의미 함) 및 вЂforceforce ).
목차.
이전 주제
다음 주제
빠른 탐색.
항해.
Python Software Foundation은 비영리 법인입니다. 기부 해주십시오.

Comments

Popular Posts