我将遵循本教程:http://devcenter.heroku.com/articles/django
在某种程度上,我被建议去做:
pip freeze > requirements.txt(Ofc。来自virtualenv创建的python实例)
我得到了这个:
(venv)przemoli@ubuntu:~/Programowanie/hellodjango$ cat requirements.txt
BeautifulSoup==3.2.0
Brlapi==0.5.5
CherryPy==3.1.2
ClientForm==0.2.10
Django==1.3
GnuPGInterface==0.3.2
PAM==0.4.2
PIL==1.1.7
Routes==1.12.3
Twisted-Core==11.0.0
Twisted-Names==11.0.0
Twisted-Web==11.0.0
WebOb==1.0.8
adium-theme-ubuntu==0.3.1
apt-xapian-index==0.44
apturl==0.5.1ubuntu1
chardet==2.0.1
command-not-found==0.2.44
configglue==1.0
cssutils==0.9.8a1
defer==1.0.2
distribute==0.6.19
django-tagging==0.3.1
dnspython==1.9.4
duplicity==0.6.15
gnome-app-install==0.4.7-nmu1ubuntu2
httplib2==0.7.2
jockey==0.9.4
keyring==0.6.2
launchpadlib==1.9.8
lazr.restfulclient==0.11.2
lazr.uri==1.0.2
louis==2.3.0
lxml==2.3
mechanize==0.1.11
nvidia-common==0.0.0
oauth==1.0.1
onboard==0.96.1
oneconf==0.2.6.7
papyon==0.5.5
pexpect==2.3
piston-mini-client==0.6
protobuf==2.4.0a
psycopg2==2.4.4
pyOpenSSL==0.12
pycrypto==2.3
pycups==1.9.59
pycurl==7.19.0
pyinotify==0.9.1
pyparsing==1.5.2
pyserial==2.5
pysmbc==1.0.10
python-apt==0.8.0ubuntu9
python-dateutil==1.4.1
python-debian==0.1.20ubuntu2
python-virtkey==0.60.0
pyxdg==0.19
sessioninstaller==0.0.0
simplejson==2.1.6
system-service==0.1.6
ubuntu-sso-client==1.4.0
ubuntuone-couch==0.3.0
ubuntuone-installer==2.0.0
ubuntuone-storage-protocol==2.0.0
ufw==0.30.1-2ubuntu1
unattended-upgrades==0.1
usb-creator==0.2.23
virtualenv==1.6.4
wadllib==1.2.0
wsgiref==0.1.2
xdiagnose==1.1
xkit==0.0.0
zope.interface==3.6.1在heroku上部署时,它在Brlapi失败.....
我在ubuntu上的主要python安装中看到了很多东西。这很糟糕,因为Ubuntu本身使用python做了很多事情(ubuntu-one、usb-creator等)。
我不需要他们在heroku上!我只需要Django、psycopg2和它们的依赖项。我甚至不知道是pip的错,还是virutalenv的错。(如果你想知道我的设置,请看上面的链接,我把它复制到了终端中)
发布于 2012-02-25 21:54:50
这也是让我很困扰的一件事。当您创建一个不带--no-site-packages标志的virtualenv时,就会发生这种情况。
您可以做以下几件事:
--no-site-packages标志创建virtualenv。pip install <name>,而应先将库添加到requirements.txt中,然后再安装要求。这是较慢的,但确保你的需求是updated.INSTALLED_APPS和数据库适配器中的任何内容。由于依赖关系,大多数其他所需的库将自动安装。我知道这很愚蠢,但这就是我通常会做的事情。-编辑--
此后,我编写了一个couple of scripts来帮助管理这一点。第一次运行pip freeze并将找到的库添加到提供的需求文件中,另一次运行pip install,然后将其添加到需求文件中。
function pipa() {
# Adds package to requirements file.
# Usage: pipa <package> <path to requirements file>
package_name=$1
requirements_file=$2
if [[ -z $requirements_file ]]
then
requirements_file='./requirements.txt'
fi
package_string=`pip freeze | grep -i $package_name`
current_requirements=`cat $requirements_file`
echo "$current_requirements\n$package_string" | LANG=C sort | uniq > $requirements_file
}
function pipia() {
# Installs package and adds to requirements file.
# Usage: pipia <package> <path to requirements file>
package_name=$1
requirements_file=$2
if [[ -z $requirements_file ]]
then
requirements_file='./requirements.txt'
fi
pip install $package_name
pipa $package_name $requirements_file
}发布于 2017-01-18 05:48:44
pipreqs解决了这个问题。它生成项目级别的 requirement.txt文件。
pip install pipreqs
pipreqs /path/to/your/project/需求文件将保存在pipreqs中发布于 2012-02-26 03:44:41
如果您非常关心requirements.txt的整洁性,那么不仅应该使用前面提到的--no-site-packages选项,还应该考虑不通过管道将pip freeze的输出直接发送到requirements.txt。原因是,当执行pip freeze时,不仅会显示自己指定的包,还会显示这些包安装的依赖项!没有必要将它们全部保存在您的requirements.txt中,因为它们会自动随需要它们的软件包一起安装……所以如果你在你的虚拟环境中添加了一个新的包,你可能应该把这个包的代码行添加到你的requirements.txt中……
请参阅此示例:
(demo)[~]$ pip freeze
distribute==0.6.19
wsgiref==0.1.2
(demo)[~]$ pip install django-blog-zinnia
Downloading/unpacking django-blog-zinnia
Downloading django-blog-zinnia-0.9.tar.gz (523Kb): 523Kb downloaded
Running setup.py egg_info for package django-blog-zinnia
no previously-included directories found matching 'docs/api'
no previously-included directories found matching 'docs/build'
no previously-included directories found matching 'docs/coverage'
no previously-included directories found matching 'zinnia/media/zinnia/css/.sass-cache'
Downloading/unpacking BeautifulSoup>=3.2.0 (from django-blog-zinnia)
Downloading BeautifulSoup-3.2.1.tar.gz
Running setup.py egg_info for package BeautifulSoup
# truncated as it installs some more dependencies
Successfully installed django-blog-zinnia BeautifulSoup django-mptt django-tagging django-xmlrpc pyparsing
Cleaning up...
(demo)[~]$ pip freeze
BeautifulSoup==3.2.1
distribute==0.6.19
django-blog-zinnia==0.9
django-mptt==0.5.2
django-tagging==0.3.1
django-xmlrpc==0.1.3
pyparsing==1.5.6
wsgiref==0.1.2(虽然我可能应该提一下,在大多数情况下,在那里有这些依赖项不会有什么坏处,只是文件会变得越来越大,更难维护。)
https://stackoverflow.com/questions/9444289
复制相似问题