【发布时间】:2018-01-21 17:47:39
【问题描述】:
我需要在 virtualenv 中冻结我的依赖项。在 virtualenv 中,我有烧瓶 Web 应用程序的要求列表应该是这样的:
Flask==0.10.1
Jinja2==2.7.3
Werkzeug==0.9.6
html5lib==0.999
itsdangerous==0.24
mote==0.0.3
ndg-httpsclient==0.3.2
pyasn1==0.1.7
requests==2.4.3
twython==3.1.2
urllib3==1.9.1
virtualenv==15.1.0
wheel==0.24.0
wsgiref==0.1.2
但是当我尝试通过以下方式冻结它时:
source venv/bin/activate
sudo sh -c 'sudo pip freeze > require.txt' # baceuse after simple sudo pip freeze > requir.txt I am getting this error -bash: requir.txt: Permission denied
我得到了这份清单:
Cap1xxx==0.1.3
ExplorerHAT==0.4.2
Flask==0.10.1
Flask-Email==1.4.4
Flask-Login==0.4.1
Flask-Mail==0.9.1
Jinja2==2.7.3
MarkupSafe==0.23
MySQL-python==1.2.3
Pillow==2.6.1
RPi.GPIO==0.6.3
RTIMULib==7.2.1
Werkzeug==0.9.6
argparse==1.2.1
automationhat==0.0.4
blinker==1.3
blinkt==0.1.0
certifi==2018.1.18
chardet==3.0.4
colorama==0.3.2
dropbox==8.6.0
drumhat==0.0.5
envirophat==0.0.6
fourletterphat==0.0.2
gpiozero==1.4.0
html5lib==0.999
idna==2.6
itsdangerous==0.24
lxkeymap==0.1
mcpi==0.1.1
microdotphat==0.1.3
mote==0.0.3
motephat==0.0.2
ndg-httpsclient==0.3.2
numpy==1.8.2
phatbeat==0.0.2
pianohat==0.0.5
picamera==1.13
picraft==1.0
pifacecommon==4.2.1
pifacedigitalio==3.1.0
piglow==1.2.4
pigpio==1.35
pyOpenSSL==0.13.1
pyasn1==0.1.7
pygame==1.9.2a0
pygobject==3.14.0
pyinotify==0.9.4
pyserial==2.6
python-apt==0.9.3.12
rainbowhat==0.0.2
requests==2.18.4
scrollphat==0.0.7
scrollphathd==1.0.1
sense-emu==1.0
sense-hat==2.2.0
six==1.8.0
skywriter==0.0.7
smbus==1.1
sn3218==1.2.7
spidev==3.0
touchphat==0.0.1
twython==3.1.2
urllib3==1.22
virtualenv==15.1.0
wheel==0.24.0
wsgiref==0.1.2
如您所见,其中包含所有已安装的软件包,其中许多未连接到我的烧瓶 Web 应用程序,例如 numpy==1.8.2 或 RPi.GPIO==0.6.3,尽管事实上我是在 virtualenv 内部进行的。
那么,有没有办法获取仅与我的烧瓶应用程序捆绑在一起的依赖项列表?
谢谢!
【问题讨论】:
-
您不能将
sudo与 virtualenvs 一起使用(无论如何都不需要它) -
使用 sh 命令启动一个新的 shell,它根本不知道之前的 activate 命令。
-
阿奇!这才是重点!谢谢!如果我收到“权限错误”,该如何处理?
-
使用 sh 命令启动一个新的 shell(原来的子进程),它根本不知道前面的 activate 命令。为什么不更改 require.txt 文件(chown 或 chmod)的所有者或权限?