2017-10-18 2 views
3

requirements.txt 파일을 생성하고 싶습니다.프로젝트에서 가져 오거나 필요로하는 Python 모듈 만 나열 (고정)하는 방법

altgraph==0.10.2 
ansible==2.2.1.0 
bdist-mpkg==0.5.0 
bonjour-py==0.3 
certifi==2017.7.27.1 
cffi==1.9.1 
chardet==3.0.4 
cryptography==1.7.1 
enum34==1.1.6 
idna==2.6 
ipaddress==1.0.18 
Jinja2==2.8.1 
macholib==1.5.1 
MarkupSafe==0.23 
matplotlib==1.3.1 
modulegraph==0.10.4 
numpy==1.8.0rc1 
paramiko==2.1.1 
py2app==0.7.3 
pyasn1==0.1.9 
pycparser==2.17 
pycrypto==2.6.1 
pyobjc-core==2.5.1 
pyobjc-framework-Accounts==2.5.1 
pyobjc-framework-AddressBook==2.5.1 
pyobjc-framework-AppleScriptKit==2.5.1 
pyobjc-framework-AppleScriptObjC==2.5.1 
pyobjc-framework-Automator==2.5.1 
pyobjc-framework-CFNetwork==2.5.1 
pyobjc-framework-Cocoa==2.5.1 
pyobjc-framework-Collaboration==2.5.1 
pyobjc-framework-CoreData==2.5.1 
pyobjc-framework-CoreLocation==2.5.1 
pyobjc-framework-CoreText==2.5.1 
pyobjc-framework-DictionaryServices==2.5.1 
pyobjc-framework-EventKit==2.5.1 
pyobjc-framework-ExceptionHandling==2.5.1 
pyobjc-framework-FSEvents==2.5.1 
pyobjc-framework-InputMethodKit==2.5.1 
pyobjc-framework-InstallerPlugins==2.5.1 
pyobjc-framework-InstantMessage==2.5.1 
pyobjc-framework-LatentSemanticMapping==2.5.1 
pyobjc-framework-LaunchServices==2.5.1 
pyobjc-framework-Message==2.5.1 
pyobjc-framework-OpenDirectory==2.5.1 
pyobjc-framework-PreferencePanes==2.5.1 
pyobjc-framework-PubSub==2.5.1 
pyobjc-framework-QTKit==2.5.1 
pyobjc-framework-Quartz==2.5.1 
pyobjc-framework-ScreenSaver==2.5.1 
pyobjc-framework-ScriptingBridge==2.5.1 
pyobjc-framework-SearchKit==2.5.1 
pyobjc-framework-ServiceManagement==2.5.1 
pyobjc-framework-Social==2.5.1 
pyobjc-framework-SyncServices==2.5.1 
pyobjc-framework-SystemConfiguration==2.5.1 
pyobjc-framework-WebKit==2.5.1 
pyOpenSSL==0.13.1 
pyparsing==2.0.1 
python-dateutil==1.5 
pytz==2013.7 
PyYAML==3.12 
requests==2.18.4 
scipy==0.13.0b1 
six==1.4.1 
urllib3==1.22 
vboxapi==1.0 
xattr==0.6.4 
zope.interface==4.1.1 

는 사실, 난 (ossys 외에) 내가 사용하는 yaml, requestsjson 수입 만 알고 : 맥 OS에 pip freeze를 사용하는 경우, 나는 모듈의 긴 목록을 가져옵니다.

명령이 나에게 내 프로젝트/파일

을 (하위 의존성 또는 시스템 라이브러리없이) 가져 오는 모듈의 첫 번째 단계가 나열하는 경우 ============= =

지금 virtualenvpip freeze을 시도

UPDATE 보고서 :

certifi==2017.7.27.1 
chardet==3.0.4 
idna==2.6 
PyYAML==3.12 
requests==2.18.4 
urllib3==1.22 

좋아요, 이것은 내 외장 수입품 (PyYAMLrequests)에 더 가깝습니다.

그리고 virtualenv 나는 단지 내 requirements.txt에 두 개의 모듈이 있어야합니다 것을 확인 :

(MYENV)$ python ./script.py 
... 
    import yaml 
ImportError: No module named yaml 

(MYENV)$ pip install PyYAML 
Collecting PyYAML 
Installing collected packages: PyYAML 
Successfully installed PyYAML-3.12 

(MYENV)$ python ./script.py 
... 
    import requests 
ImportError: No module named requests 

(MYENV)$ pip install requests 
Collecting requests 
    Using cached requests-2.18.4-py2.py3-none-any.whl 
Collecting urllib3<1.23,>=1.21.1 (from requests) 
    Using cached urllib3-1.22-py2.py3-none-any.whl 
Collecting idna<2.7,>=2.5 (from requests) 
    Using cached idna-2.6-py2.py3-none-any.whl 
Collecting chardet<3.1.0,>=3.0.2 (from requests) 
    Using cached chardet-3.0.4-py2.py3-none-any.whl 
Collecting certifi>=2017.4.17 (from requests) 
    Using cached certifi-2017.7.27.1-py2.py3-none-any.whl 
Installing collected packages: urllib3, idna, chardet, certifi, requests 
Successfully installed certifi-2017.7.27.1 chardet-3.0.4 idna-2.6 requests-2.18.4 urllib3-1.22 

(MYENV)$ python ./script.py 
It works! 

다른 모든 요구 사항 (certifi, chardet, idna, urllib3가) 실제로 requests의 요구 사항입니다.

따라서 가져온 상위 종속성 만 가져 오는 방법 (수동 정리 제외)이 있습니까? 내 것 requirements.txt 예상 :

PyYAML==3.12 
requests==2.18.4 

답변

1

그러나 =>https://pypi.python.org/pypi/pipdeptree

, 당신은 더 수동으로 설치 패키지, 그것의 종속성을 볼 수있는 주요 응용 프로그램/라이브러리를 빈 VIRTUALENV를 생성하고 다시 설치해야합니다 .

+0

나는'virtualenv'을 사용하면서'pip freeze'로 단계별로 만들었습니다. 'pipdeptree'는 여전히 virtualenv에서 모든 것을 출력합니다. –

관련 문제