좋아, C 모듈이 들어있는 사전 빌드 된 Python 패키지를 만들고 싶습니다.OSX에 미리 빌드 된 Python 패키지
pip install whatevertarballgetsproduced.tar.gz
을하고 MyLibrary를 사용할 수있을 것입니다 : 그것은 그것의 끝에서 내 모듈을 사용하는 데 필요한 모든 것을 포함하고, 즉 마지막에 내가 할 수있는, 수 설치 핍있는 타르볼을 갖고 싶어한다 . 또한 가상 환경 친화적이어야합니다.
내 현재 디렉토리 구조는 다음과 같습니다
입니다project/
+ setup.py
+ mylibrary/
+ __init__.py
+ mylibrary.py
+ _mylibrary.so
+ README
, 컴파일 된 C 라이브러리 _mylibrary.so
입니다. 이 파일이 파생 된 C 소스는 이 아니며이 tarball에 포함됩니다. 나는 또한 이것을 OSX (Lion)에서하고있다. mylibrary.py
에는 C 라이브러리 코드에 대한 파이썬 래퍼가 포함되어 있습니다.
어떻게해야합니까? 내가 python setup.py bdist
일을 생각했지만 이것은 정말로 내가 원하던 것이 아니다. (내가 만든 tarball이 pip install-able이 아닌 것을 놓치지 않는 한). 완료를 위해서
, 내 setup.py은 다음과 같습니다
from setuptools import setup
setup(
name='mylibrary_py3mac',
version='0.1.1',
description='My library which is tied to OSX & Python 3',
long_description=open('README').read(),
packages=['mylibrary'],
classifiers = [
'Intended Audience :: Developers',
'License :: OSI Approved :: BSD License',
'Operating System :: MacOS :: MacOS X',
'Programming Language :: Python :: 3',
],
)
주, 나는 공개적으로 타르볼을 배포 할 계획이없는, 그것은 내부 배포 용으로 만 (그래서 내가 돈 이유 '입니다 OSX에서만 미리 컴파일되거나 묶여 야 함).
'__init __. py'를 포함하는 것을 잊어 버렸습니다. 지적 해 주셔서 고맙습니다. 당신의 질문에 대답하기 위해서 : 나는 달걀을 만들려고했으나, 당신이 말한대로 .egg는 Pip과 함께 작동하지 않으며, 그것은 나를위한 핵심 요구 사항입니다. –
Pip으로 패키지를 설치할 때 Python 가상 환경을 대상으로합니까, 아니면 글로벌 사이트 패키지에 직접 설치합니까?앞의 경우, Pip 요구 사항은 현대적인'virtualenv'가 pip와 easy_install을 번들로 묶어두기 때문에 문제가 될 수 있습니다. 따라서 pip에 피쳐가 없으면 그림과 같이 easy_install을 사용할 수 있습니다. –
사실 두 경우 모두 내 전역 사이트 패키지를 대상으로해야하며 다른 경우에는 가상 환경을 사용하게됩니다. 또한 pip 요구 사항 파일에 지정된 다른 많은 의존성을 가지고 있으므로이 프로젝트의 패키지 관리를 위해'easy_install'과'pip'를 섞어 놓지 않아도됩니다. –