2017-08-25 86 views
0

我一直在嘗試在Azure上的Django Web App上安裝某些python包。我正在嘗試使用requirements.txt和pips輪盤文件安裝軟件包,如此處所示https://blogs.msdn.microsoft.com/azureossds/2015/06/29/install-native-python-modules-on-azure-web-apps-api-apps/用python和pip輪安裝Azure web應用程序

問題是,pip似乎無法找到wheelhouse文件夾。 wheelhouse文件夾位於我的應用程序目錄的根目錄,我還保留requirements.txt,manage.py,readme.md和web.config文件。

這裏就是我的requirements.txt文件看起來像:在駕駛室夾

--find-links wheelhouse 
django<2 
pyodbc==4.0.17 
django-pyodbc-azure==1.11.0 

我這裏還有文件:

~/myapp/wheelhouse/django_pyodbc_azure-1.11.0.0-py2.py3-none-any.whl 
~/myapp/wheelhouse/Django-1.11.4-py2.py3-none-any.whl 
~/myapp/wheelhouse/pyodbc-4.0.17-cp27-cp27m-win_amd64.whl 
~/myapp/wheelhouse/pyodbc-4.0.17-cp27-cp27m-win32.whl 

我從這裏下載的pyodbc .whl文件:http://www.lfd.uci.edu/~gohlke/pythonlibs/

django_pyodbc_azure-1.11.0.0-py2.py3-none-any.whl文件是通過使用安裝了python的windows C++編譯器的windows筆記本電腦創建的(https://www.microsoft.com/en-us/download/confirmation.aspx?id=44266

當按下提交到服務器我還是

Counting objects: 7, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (7/7), done. 
Writing objects: 100% (7/7), 730 bytes | 0 bytes/s, done. 
Total 7 (delta 3), reused 0 (delta 0) 
remote: Updating branch 'master'. 
remote: ...................................................................... 
remote: Updating submodules. 
remote: Preparing deployment for commit id '7feb3f4dde'. 
remote: Generating deployment script. 
remote: Running deployment command... 
remote: Handling python deployment. 
remote: Detected requirements.txt. You can skip Python specific steps with a .skipPythonDeployment file. 
remote: Detecting Python runtime from site configuration 
remote: Detected python-2.7 
remote: Deleting incompatible virtual environment. 
remote: ..................................................................................... 
remote: Creating python-2.7 virtual environment. 
remote: ... 
remote: New python executable in env\Scripts\python.exe 
remote: ........................................ 
remote: Installing setuptools, pip...done. 
remote: Pip install requirements. 
remote: . 
remote: Downloading/unpacking django<2 (from -r requirements.txt (line 2)) 
remote: ......................... 
remote: Downloading/unpacking pyodbc==4.0.17 (from -r requirements.txt (line 3)) 
remote: Running setup.py (path:D:\home\site\wwwroot\env\build\pyodbc\setup.py) egg_info for package pyodbc 
remote:  
remote: Downloading/unpacking django-pyodbc-azure==1.11.0 (from -r requirements.txt (line 4)) 
remote: Downloading/unpacking pytz (from django<2->-r requirements.txt (line 2)) 
remote: Installing collected packages: django, pyodbc, django-pyodbc-azure, pytz 
remote: ............................................................................................................................. 
remote: Running setup.py install for pyodbc 
remote:  building 'pyodbc' extension 
remote:  error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27 
remote:  Complete output from command D:\home\site\wwwroot\env\Scripts\python.exe -c "import setuptools, tokenize;__file__='D:\\home\\site\\wwwroot\\env\\build\\pyodbc\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record d:\local\temp\pip-hgg_tz-record\install-record.txt --single-version-externally-managed --compile --install-headers D:\home\site\wwwroot\env\include\site\python2.7: 
remote:  running install 
remote: 
remote: running build 
remote: 
remote: running build_ext 
remote: 
remote: building 'pyodbc' extension 
remote: 
remote: error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27 
remote: 
remote: ---------------------------------------- 
remote: Cleaning up... 
remote: .................................................................................................................................. 
remote: Command D:\home\site\wwwroot\env\Scripts\python.exe -c "import setuptools, tokenize;__file__='D:\\home\\site\\wwwroot\\env\\build\\pyodbc\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record d:\local\temp\pip-hgg_tz-record\install-record.txt --single-version-externally-managed --compile --install-headers D:\home\site\wwwroot\env\include\site\python2.7 failed with error code 1 in D:\home\site\wwwroot\env\build\pyodbc 
remote: Storing debug log for failure in D:\home\pip\pip.log 
remote: An error has occurred during web site deployment. 
remote: 
remote: Error - Changes committed to remote repository but deployment to website failed. 

我爲我做錯了什麼在這裏真糊塗。有任何想法嗎?一個猜測是,駕駛室文件夾應該移動到一個子目錄?我試圖將它移動到腳本下的app env文件夾中,但它也不起作用。

謝謝你的時間。

編輯

於是,我就從我的捻控制檯直接運行的腳本,這裏是我得到的錯誤:

D:\home\site\wwwroot\env\Scripts\pip run on 08/25/17 15:51:48 
pyodbc-4.0.17-cp27-cp27m-win32.whl is not a supported wheel on this platform. 
Exception information: 
Traceback (most recent call last): 
    File "D:\home\site\wwwroot\env\lib\site-packages\pip\basecommand.py", line 122, in main 
    status = self.run(options, args) 
    File "D:\home\site\wwwroot\env\lib\site-packages\pip\commands\install.py", line 257, in run 
    InstallRequirement.from_line(name, None)) 
    File "D:\home\site\wwwroot\env\lib\site-packages\pip\req.py", line 167, in from_line 
    raise UnsupportedWheel("%s is not a supported wheel on this platform." % wheel.filename) 
UnsupportedWheel: pyodbc-4.0.17-cp27-cp27m-win32.whl is not a supported wheel on this platform. 

回答

1

推薦的方法是使用你的Web應用程序更新的Python一個擴展: https://docs.microsoft.com/visualstudio/python/managing-python-on-azure-app-service

實際上,WebApp上Python的默認版本非常老舊(並且不安全)。你會得到一個新版本的點子,能夠處理所有的輪子文件(目前它不像你看到的...)。 請注意,Python擴展是由Microsoft編譯的,它們是官方的。

+0

很好,謝謝!問題在於pip的舊版本,這似乎是對它的一種解決方案。 – P4nd4b0b3r1n0