2012-03-10 144 views
2

我试图在Heroku上部署django项目。我使用virtualenv和pip来管理依赖关系。 virtualenv版本是1.7.1,它附带的pip是1.1。我试图强制--no-site-packages,但它现在提示它是默认行为。另外我确定我在虚拟环境中安装了所有东西。 Django项目是空的。我按照说明here。也许问题是他们的pip和virtualenv版本比较老?有没有人遇到过这个问题?先谢谢你。Heroku中的Django项目无法安装pip的依赖关系

ψ pip.exe freeze 
Django==1.3.1 
distribute==0.6.24 
versiontools==1.8.3 
(venv) 

ψ more .\requirements.txt 
Django==1.3.1 
distribute==0.6.24 
versiontools==1.8.3 

(venv) 

ψ git push heroku master 
Enter passphrase for key '/c/Program Files (x86)/Vim/.ssh/id_rsa': 
Counting objects: 12, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (10/10), done. 
Writing objects: 100% (12/12), 3.30 KiB, done. 
Total 12 (delta 2), reused 0 (delta 0) 

-----> Heroku receiving push 
-----> Python/Django app detected 
-----> Preparing virtualenv version 1.7 
     New python executable in ./bin/python 
     Installing distribute.............................................................................................................................................................................................done. 
     Installing pip...............done. 
-----> Activating virtualenv 
-----> Installing dependencies using pip version 1.0.2 
     Exception: 
     Traceback (most recent call last): 
     File "/tmp/build_k6zl66ydgqxp/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg/pip/basecommand.py", line 126, in main 
      self.run(options, args) 
     File "/tmp/build_k6zl66ydgqxp/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg/pip/commands/install.py", line 200, in run 
      for req in parse_requirements(filename, finder=finder, options=options): 
     File "/tmp/build_k6zl66ydgqxp/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg/pip/req.py", line 1255, in parse_requirements 
      req = InstallRequirement.from_line(line, comes_from) 
     File "/tmp/build_k6zl66ydgqxp/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg/pip/req.py", line 82, in from_line 
      elif os.path.isdir(path) and (os.path.sep in name or name.startswith('.')): 
     File "/tmp/build_k6zl66ydgqxp/lib/python2.7/genericpath.py", line 41, in isdir 
      st = os.stat(s) 
     TypeError: must be encoded string without NULL bytes, not str 

     Storing complete log in /app/.pip/pip.log 
!  Heroku push rejected, failed to compile Python/django app 
+0

您可以发布您requirements.txt还有吗? – 2012-03-10 11:59:53

+0

@Sam是的。现在完成。 – ilcredo 2012-03-10 12:02:59

+0

@Sam其实我在想OS系列的结局。我在Windows 7上,如果他们使用一些POSIX操作系统,但他们没有提到这是教程。 – ilcredo 2012-03-10 12:05:47

回答

7

它似乎是在requirements.txt这个问题,我使用PowerShell和“pip.exe冻结> requirements.txt”命令, 它创建与具有nullbytes名称中的文件创建它它。 我能够通过从github上的示例项目下载requirements.txt并修改它来解决此问题。 这样做的工作,一切都很好。

+0

请关闭qusetion http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – jpic 2012-05-20 22:04:04

相关问题