Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python3不再适用于Azure函数_Python_Azure_Azure Functions - Fatal编程技术网

python3不再适用于Azure函数

python3不再适用于Azure函数,python,azure,azure-functions,Python,Azure,Azure Functions,我的功能已经运行了一段时间,但突然间什么都不起作用了。我成功地遵循了这里的指示。代码是从Github自动部署的。然而,几周前事情出了问题。我没有解决我的问题,但我已经解决了一些问题: 1) 我安装的模块(使用pip)已丢失或无法再找到。我设法安装了它们,但几个小时后它们就消失了 2) 该函数运行于2.7版。我想这是因为道路已经改变了。以前的\home\site\tools位于路径中。情况不再如此。以前的工作是使用nuget site extension安装python 3,然后将其移动到\hom

我的功能已经运行了一段时间,但突然间什么都不起作用了。我成功地遵循了这里的指示。代码是从Github自动部署的。然而,几周前事情出了问题。我没有解决我的问题,但我已经解决了一些问题:

1) 我安装的模块(使用pip)已丢失或无法再找到。我设法安装了它们,但几个小时后它们就消失了

2) 该函数运行于2.7版。我想这是因为道路已经改变了。以前的\home\site\tools位于路径中。情况不再如此。以前的工作是使用nuget site extension安装python 3,然后将其移动到\home\site\tools文件夹。我已尝试将python3安装移动到路径中的/home/site/deployments/tools

更新:我尝试使用以下说明:。我设法让我的函数运行Python3,并设法让Azure安装所需的模块。因此,简而言之,我有以下文件夹结构:

requirements.txt
├── function
    ├── deploy.cmd
    ├── .deployment
    ├── function.json
    ├── run.py
部署是

@if "%SCM_TRACE_LEVEL%" NEQ "4" @echo off

:: --------------------------------------------------------
:: KUDU Deployment Script for Python 3.6 on Azure Functions
:: Version: 0.1
:: --------------------------------------------------------

:: Prerequisites
:: -------------

:: Verify node.js installed
where node 2>nul >nul
IF %ERRORLEVEL% NEQ 0 (
  echo Missing node.js executable, please install node.js, if already installed make sure it can be reached from current environment.
  goto error
)

:: Setup
:: -----

setlocal enabledelayedexpansion

SET ARTIFACTS=%~dp0%..\artifacts

IF NOT DEFINED DEPLOYMENT_SOURCE (
  SET DEPLOYMENT_SOURCE=%~dp0%.
)

IF NOT DEFINED DEPLOYMENT_TARGET (
  SET DEPLOYMENT_TARGET=%ARTIFACTS%\wwwroot
)

IF NOT DEFINED NEXT_MANIFEST_PATH (
  SET NEXT_MANIFEST_PATH=%ARTIFACTS%\manifest

  IF NOT DEFINED PREVIOUS_MANIFEST_PATH (
    SET PREVIOUS_MANIFEST_PATH=%ARTIFACTS%\manifest
  )
)

IF NOT DEFINED KUDU_SYNC_CMD (
  :: Install kudu sync
  echo Installing Kudu Sync
  call npm install kudusync -g --silent
  IF !ERRORLEVEL! NEQ 0 goto error

  :: Locally just running "kuduSync" would also work
  SET KUDU_SYNC_CMD=%appdata%\npm\kuduSync.cmd
)
goto Deployment

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Deployment
:: ----------

:Deployment
echo Handling python deployment.

:: 1. KuduSync
IF /I "%IN_PLACE_DEPLOYMENT%" NEQ "1" (
  call :ExecuteCmd "%KUDU_SYNC_CMD%" -v 50 -f "%DEPLOYMENT_SOURCE%" -t "%DEPLOYMENT_TARGET%" -n "%NEXT_MANIFEST_PATH%" -p "%PREVIOUS_MANIFEST_PATH%" -i ".git;.hg;.deployment;deploy.cmd"
  IF !ERRORLEVEL! NEQ 0 goto error
)

IF NOT EXIST "%DEPLOYMENT_TARGET%\requirements.txt" goto postPython
IF EXIST "%DEPLOYMENT_TARGET%\.skipPythonDeployment" goto postPython

echo Detected requirements.txt.  You can skip Python specific steps with a .skipPythonDeployment file.


pushd "%DEPLOYMENT_TARGET%"

:: 2. Create virtual environment
IF NOT EXIST "D:\home\site\tools\python36*" (

  echo Creating Python 3.6.1 x64 virtual environment...
  nuget.exe install -Source https://www.siteextensions.net/api/v2/ -OutputDirectory D:\home\site\tools python361x64
  mv /d/home/site/tools/python3*/content/python*/* /d/home/site/tools/
  IF !ERRORLEVEL! NEQ 0 goto error

) ELSE (
  echo Found compatible virtual environment.
)

:: 3. Install packages
echo Pip install requirements...
D:\home\site\tools\python.exe -m pip install -r "%DEPLOYMENT_TARGET%\requirements.txt"
IF !ERRORLEVEL! NEQ 0 goto error

popd

:postPython

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
goto end

:: Execute command routine that will echo out when error
:ExecuteCmd
setlocal
set _CMD_=%*
call %_CMD_%
if "%ERRORLEVEL%" NEQ "0" echo Failed exitCode=%ERRORLEVEL%, command=%_CMD_%
exit /b %ERRORLEVEL%

:error
endlocal
echo An error has occurred during web site deployment.
call :exitSetErrorLevel
call :exitFromFunction 2>nul

:exitSetErrorLevel
exit /b 1

:exitFromFunction
()

:end
endlocal
echo Finished successfully.
这实际上是可行的,但过了一段时间,我要么回到python 2.7,没有包,要么收到错误消息

Exception while executing function: Functions.toc
Microsoft.Azure.WebJobs.Host.FunctionInvocationException : Exception while executing function: Functions.toc ---> System.ApplicationException
   at async Microsoft.Azure.WebJobs.Script.Description.ScriptFunctionInvoker.ExecuteScriptAsync(String path,String arguments,Object[] invocationParameters,FunctionInvocationContext context) at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Description\Script\ScriptFunctionInvoker.cs : 114
   at async Microsoft.Azure.WebJobs.Script.Description.ScriptFunctionInvoker.InvokeCore(Object[] parameters,FunctionInvocationContext context) at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Description\Script\ScriptFunctionInvoker.cs : 55
   at async Microsoft.Azure.WebJobs.Script.Description.FunctionInvokerBase.Invoke(Object[] parameters) at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Description\FunctionInvokerBase.cs : 95
   at async Microsoft.Azure.WebJobs.Host.Executors.VoidTaskMethodInvoker`2.InvokeAsync[TReflected,TReturnType](TReflected instance,Object[] arguments)
   at async Microsoft.Azure.WebJobs.Host.Executors.FunctionInvoker`2.InvokeAsync[TReflected,TReturnValue](Object instance,Object[] arguments)
   at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.InvokeAsync(IFunctionInvoker invoker,ParameterHelper parameterHelper,CancellationTokenSource timeoutTokenSource,CancellationTokenSource functionCancellationTokenSource,Boolean throwOnTimeout,TimeSpan timerInterval,IFunctionInstance instance)
   at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ExecuteWithWatchersAsync(IFunctionInstance instance,ParameterHelper parameterHelper,TraceWriter traceWriter,CancellationTokenSource functionCancellationTokenSource)
   at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ExecuteWithLoggingAsync(??)
   at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ExecuteWithLoggingAsync(??) 
   End of inner…
尽管如此,我可以打开一个控制台,运行代码而不会出错。因此,我尝试重新部署该函数,但没有成功。我猜azure会每隔一段时间进行一些清理或其他工作


最好解决问题。这是由Azure中的一个bug引起的


基本上,只需在“功能应用程序设置”中回滚到旧版本(如1.0.11296),所有功能都会恢复正常:-)

您好,请发布更多关于您的代码的详细信息,让我为您服务好吗?您好,Jay Gong。我试图添加更多细节:-)