Cette page est
Exemple Tello-Run Python "Tello_Video"
C'est une page supplémentaire de.
Pas seulement pour "Tello_Video", Si vous voulez faire "Tello-Python" sous Windows, vous devez d'abord le faire, y compris l'installation de Python.
De l'exemple de programme officiel de DJI Python "Tello-Python" pour Tello Tello_Video Afin d'essayer
--Installation de diverses bibliothèques dépendantes
Tu as besoin de faire.
La [page Tello-Python] de git (https://github.com/dji-sdk/Tello-Python/tree/master/Tello_Video#installation) a une méthode d'installation
· Les fenêtres
Go to the "install\Windows" folder,select and run the correct "windows_install.bat" according to your computer operating system bits.
est ce qu'il lit. C'est,
Déplacer des dossiers, modifier les attributs de fichier, exécuter des fichiers shell
> cd install¥Windows¥
> windows_install.bat
Cela signifie taper la commande. ** windows_install.bat ** </ font> est un fichier de commandes qui crée automatiquement l'environnement pour Windows.
Mais même si tu fais ça
Eh bien, il y a beaucoup de bugs / problèmes. Divers travaux sont nécessaires pour résoudre ce problème.
Tello-Python est installé dans le dossier d'accueil (c: \ Users \ (nom d'utilisateur) ),
Autrement dit, nous supposerons qu'il existe un dossier appelé c: \ Users \ (nom d'utilisateur) \ Tello-Python-master
.
Aussi,
--Démarrage de l'invite de commande Windows
C'est également une prémisse majeure que vous avez les compétences nécessaires pour comprendre. Windows est pratique, mais si vous essayez de faire quelque chose d'étrange, c'est un environnement difficile (> _ <
Tout d'abord, dans l'Explorateur, accédez au dossier install \ Windows dans Tello-Video.
À l'intérieur du dossier se trouvent ʻinstall.bat et ʻuninstall.bat
.
** Veuillez noter que l'utilisation de ce install.bat ne fonctionnera pas. </ font> **
En utilisant ce dossier comme zone de travail, nous effectuerons les tâches suivantes.
Les fichiers Windows BAT ne fonctionnent pas correctement sauf si le code de caractère est Shift-JIS. (Je déteste Windows à cause de cette gêne)
** Copiez et collez le code suivant dans le Bloc-notes, sélectionnez [Fichier] - [Enregistrer sous], puis sélectionnez [Code de caractère] - [ANSI] pour enregistrer. </ font> ** Si vous utilisez un éditeur de texte, enregistrez-le avec [Shift-JIS]. Le nom du fichier est ʻinstall_new2020Mar12.bat`.
Pour le moment, le fichier est également placé dans github, mais le code de caractère est UTF-8. , Ne peut pas être utilisé tel quel. Veuillez convertir le code de caractère en [Shift-JIS].
install_new2020Mar12.bat
echo=1/*>nul&@cls
@echo off
setlocal enableDelayedExpansion
::runas administrator
%1 start "" mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cls
::setlocal
call :setdir
call :configx86orx64
set extract=extract
set pythonLib="C:\Python27\Lib\site-packages\"
set /a maxRetry=3
set /a retryCount=0
echo ------------------------------------------------------
::-------------------down python2.7 and install-------------------
echo ------------------------------------------------------
echo Downloading python2.7
echo ------------------------------------------------------
::Cette clé de registre est utilisée pour activer la prise en charge de plusieurs versions de ssl et tls et est utilisée pour résoudre un problème qui refuse l'accès au site Web officiel de Python.
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v SecureProtocols /t REG_DWORD /d 2728 /f >nul
set /a retryCount=0
for %%# in (certutil.exe) do (
if not exist "%%~f$PATH:#" (
goto downpython
)
)
if exist %pythonPackage% goto :downpythoncheck
:downpython
call :down %pythonDown% %pythonPackage%
:downpythoncheck
call :checkMD5 %pythonPackage% %pythonMD5% MD5pass
if "%MD5pass%" == "NO" (
set /a retryCount=!retryCount!+1 && if !retryCount! == %maxRetry% (
echo Retried %maxRetry% times, all failed. Skip.
goto downpythonend
) else (
echo Download %pythonPackage% failed. Retrying... !retryCount! of %maxRetry%
goto downpython
)
)
call :installmsiPackage %pythonPackage%
::python2.7 Ajouter des variables d'environnement
::wmic ne prend pas effet immédiatement, alors définissez
echo %PATH%|findstr "c:\python27" >nul
if %errorlevel% neq 0 (
wmic ENVIRONMENT where "name='PATH' and username='<system>'" set VariableValue="%PATH%;c:\python27"
set "path=%path%;c:\python27;"
)
echo %PATHEXT%|findstr ".PY;.PYM" >nul
if %errorlevel% neq 0 (
wmic ENVIRONMENT where "name='PATHEXT' and username='<system>'" set VariableValue="%PATHEXT%;.PY;.PYM"
set "pathext=%pathext%;.PY;.PYM;"
)
:downpythonend
::-------------------installation de python pip-------------------
echo ------------------------------------------------------
echo Downloading pip
echo ------------------------------------------------------
set /a retryCount=0
for %%# in (certutil.exe) do (
if not exist "%%~f$PATH:#" (
goto downpip
)
)
if exist %pipPackage% goto :downpipcheck
:downpip
call :down %pipDown% %pipPackage%
:downpipcheck
call :checkMD5 %pipPackage% %pipMD5% MD5pass
if "%MD5pass%" == "NO" (
set /a retryCount=!retryCount!+1 && if !retryCount! == %maxRetry% (
echo Retried %maxRetry% times, all failed. Skip.
goto downpipend
) else (
echo Download %pipPackage% failed. Retrying... !retryCount! of %maxRetry%
goto downpip
)
)
python %pipPackage%
python -m pip install -U pip
:downpipend
::-------------------libboost-all-installer dev-------------------
echo ------------------------------------------------------
echo Downloading libboost
echo ------------------------------------------------------
echo Please wait a few minutes...
set /a retryCount=0
for %%# in (certutil.exe) do (
if not exist "%%~f$PATH:#" (
goto downlibboost
)
)
if exist %libboostPackage% goto :downlibboostcheck
:downlibboost
call :down %libboostDown% %libboostPackage%
:downlibboostcheck
call :checkMD5 %libboostPackage% %libboostMD5% MD5pass
if "%MD5pass%" == "NO" (
set /a retryCount=!retryCount!+1 && if !retryCount! == %maxRetry% (
echo Retried %maxRetry% times, all failed. Skip.
goto downlibboostend
) else (
echo Download %libboostPackage% failed. Retrying... !retryCount! of %maxRetry%
goto downlibboost
)
)
call %libboostPackage% /SILENT /NORESTART
:downlibboostend
::-------------------l'installation de ffmpeg est libavcodec sous Linux-dev libswscale-Dépend de deux de dev-------------------
echo ------------------------------------------------------
echo Downloading ffmpeg
echo ------------------------------------------------------
set /a retryCount=0
for %%# in (certutil.exe) do (
if not exist "%%~f$PATH:#" (
goto downffmpeg
)
)
if exist %ffmpegPackage% goto :downffmpegcheck
:downffmpeg
call :down %ffmpegDown% %ffmpegPackage%
:downffmpegcheck
call :checkMD5 %ffmpegPackage% %ffmpegMD5% MD5pass
if "%MD5pass%" == "NO" (
set /a retryCount=!retryCount!+1 && if !retryCount! == %maxRetry% (
echo Retried %maxRetry% times, all failed. Skip.
goto downffmpegend
) else (
echo Download %ffmpegPackage% failed. Retrying... !retryCount! of %maxRetry%
goto downffmpeg
)
)
call :unpack %ffmpegPackage% %extract%
:downffmpegend
echo ------------------------------------------------------
echo Downloading VS2013 runtime
echo ------------------------------------------------------
set /a retryCount=0
for %%# in (certutil.exe) do (
if not exist "%%~f$PATH:#" (
goto downvs2013
)
)
if exist %vs2013package% goto :downvs2013check
:downvs2013
call :down %vs2013depend% %vs2013package%
:downvs2013check
call :checkMD5 %vs2013package% %vs2013MD5% MD5pass
if "%MD5pass%" == "NO" (
set /a retryCount=!retryCount!+1 && if !retryCount! == %maxRetry% (
echo Retried %maxRetry% times, all failed. Skip.
goto downvs2013end
) else (
echo Download %vs2013package% failed. Retrying... !retryCount! of %maxRetry%
goto downvs2013
)
)
call %vs2013package% /passive /NORESTART
:downvs2013end
::-------------------python-numpy python-matplotlib opencv-installation de python(méthode pip)-------------------
echo ------------------------------------------------------
echo Downloading numpy
echo ------------------------------------------------------
python -m pip install numpy
echo ------------------------------------------------------
echo Downloading matplotlib
echo ------------------------------------------------------
python -m pip install matplotlib
echo ------------------------------------------------------
echo Downloading opencv-python
echo ------------------------------------------------------
python -m pip install -v opencv-python==3.4.2.17
echo ------------------------------------------------------
echo Downloading pillow
echo ------------------------------------------------------
python -m pip install pillow
:copydependencies
::-------------------C: Toutes les dll dans les bibliothèques dépendantes\ python27 \ lib \ site-Placer en colis-------------------
echo ------------------------------------------------------
echo Copying dependencies
echo ------------------------------------------------------
echo %extract%\%ffmpegPackage:~0,-4%\bin\
echo %libboostPackageCopy%
echo %libh264%
xcopy /Y /E /I %extract%\%ffmpegPackage:~0,-4%\bin\*.dll %pythonLib%
xcopy /Y /E /I %libboostPackageCopy% %pythonLib%
xcopy /Y /E /I %libh264%\*.pyd %pythonLib%
endlocal
echo ------------------------------------------------------
echo Installation done.
echo ------------------------------------------------------
pause
goto :eof
::--------------------------------------------------------------------------------------------
::-----------------Ce qui suit est la zone de définition du contrôle MD5------------------
:checkMD5
set file=%~1
call :MD5get %file% MD5
if "%MD5%" equ "%~2" (
echo MD5 identical.
set "%~3=YES"
) else (
if "%MD5%" equ "skip" (
echo MD5 check skipped.
set "%~3=YES"
) else (
echo Warning: MD5 does not match!
set "%~3=NO"
)
)
goto :eof
::-----------------Ce qui suit est la zone de définition du contrôle MD5------------------
:MD5get
echo %~1
for %%# in (certutil.exe) do (
if not exist "%%~f$PATH:#" (
echo certutil.exe not found
echo for Windows XP professional and Windows 2003
echo you need Windows Server 2003 Administration Tools Pack
echo https://www.microsoft.com/en-us/download/details.aspx?id=16770
echo now skip the MD5 check
if "%~2" neq "" (
set "%~2=skip"
)
::exit /b 4
goto :eof
)
)
set "md5="
for /f "skip=1 tokens=* delims=" %%# in ('certutil -hashfile "%~f1" MD5') do (
if not defined md5 (
for %%Z in (%%#) do set "md5=!md5!%%Z"
)
)
if "%~2" neq "" (
set "%~2=%md5%"
) else (
echo %md5%
)
goto :eof
::-----------------Voici la zone de définition de changement de répertoire------------------
::L'exécution en mode administrateur modifie le chemin par défaut et renvoie le répertoire ici
:setdir
set char=%~dp0%
%char:~0,2%
cd %~dp0%
goto :eof
::-----------------Voici la zone de définition de la fonction de version------------------
:configx86orx64
IF %PROCESSOR_ARCHITECTURE% == AMD64 (
set versionFlag=win64
) else (
set versionFlag=win32
)
echo Windows Version: %versionFlag%
if %versionFlag%==win64 (
set pythonDown="https://www.python.org/ftp/python/2.7.17/python-2.7.17.amd64.msi"
set pythonPackage=python-2.7.17.amd64.msi
set pythonMD5="55040ce1c1ab34c32e71efe9533656b8"
set pipDown="https://bootstrap.pypa.io/get-pip.py"
set pipPackage=get-pip.py
set pipMD5="b7666e8e7f98f513096601d4203fb007"
set ffmpegDown="https://ffmpeg.zeranoe.com/builds/win64/shared/ffmpeg-20200311-36aaee2-win64-shared.zip"
set ffmpegPackage=ffmpeg-20200311-36aaee2-win64-shared.zip
set ffmpegMD5="500f89e0a230c26722bb128edc82d103"
set libboostDown="https://nchc.dl.sourceforge.net/project/boost/boost-binaries/1.68.0/boost_1_68_0-msvc-12.0-64.exe"
set libboostPackage="boost_1_68_0-msvc-12.0-64.exe"
set libboostPackageCopy="c:\local\boost_1_68_0\lib64-msvc-12.0\boost_python27-vc120-mt-x64-1_68.dll"
set libboostMD5="4e6b11a971502639ba5cc564c7f2d568"
set libh264=..\..\h264decoder\windows\x64
set vs2013depend="https://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x64.exe"
set vs2013package=vcredist_x64.exe
set vs2013MD5="96b61b8e069832e6b809f24ea74567ba"
) else (
set pythonDown="https://www.python.org/ftp/python/2.7.17/python-2.7.17.msi"
set pythonPackage=python-2.7.17.msi
set pythonMD5="4cc27e99ad41cd3e0f2a50d9b6a34f79"
set pipDown="https://bootstrap.pypa.io/get-pip.py"
set pipPackage=get-pip.py
set pipMD5="b7666e8e7f98f513096601d4203fb007"
set ffmpegDown="https://ffmpeg.zeranoe.com/builds/win32/shared/ffmpeg-20200311-36aaee2-win32-shared.zip"
set ffmpegPackage=ffmpeg-20200311-36aaee2-win32-shared.zip
set ffmpegMD5="bc9eae5466ca033e54588d7c25fe3ea9"
set libboostDown="https://excellmedia.dl.sourceforge.net/project/boost/boost-binaries/1.68.0/boost_1_68_0-msvc-12.0-32.exe"
set libboostPackage="boost_1_68_0-msvc-12.0-32.exe"
set libboostPackageCopy="c:\local\boost_1_68_0\lib32-msvc-12.0\boost_python27-vc120-mt-x32-1_68.dll"
set libboostMD5="d5d5ee205c87078245eb7df72789f407"
set libh264=..\..\h264decoder\windows\x86
set vs2013depend="https://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x86.exe"
set vs2013package=vcredist_x86.exe
set vs2013MD5="0fc525b6b7b96a87523daa7a0013c69d"
)
goto :eof
::-----------------Ceci est la zone de définition de la fonction h264------------------
:h264install
cd h264decoder
if exist build (
rd /s /q build
mkdir build
) else (
mkdir build
)
cd build
cmake ..
make
goto :eof
::-----------------Voici la zone de définition de la fonction de téléchargement------------------
:down
echo Source: "%~1"
echo Destination: "%~f2"
echo Start downloading "%~2"...
cscript -nologo -e:jscript "%~f0" "download" "%~1" "%~2"
::echo Download "%~2" OK!
echo ------------------------------------------------------
goto :eof
::-----------------La zone de définition de la fonction de décompression est la suivante------------------
:unpack
echo Source: "%~f1"
echo Destination: "%~f2"
echo Start unpacking "%~1"...
cscript -nologo -e:jscript "%~f0" "unpack" "%~1" "%~2" "%~dp0"
echo Unpack "%~1" OK!
echo ------------------------------------------------------
goto :eof
::-----------------Voici la zone de définition de la fonction d'installation-----------------
:installmsiPackage
echo Source: "%~f1"
echo Strat installing "%~f1"...
msiexec /i "%~f1" /passive
echo install "%~1" OK!
echo ------------------------------------------------------
goto :eof
*/
function download(DownSource, DownDestination)
{
var DownPost
,DownGet;
DownDestination=DownDestination.toLowerCase();
DownSource=DownSource.toLowerCase();
//DownPost = new ActiveXObject("Msxml2"+String.fromCharCode(0x2e)+"ServerXMLHTTP");
//DownPost = new ActiveXObject("Microsoft"+String.fromCharCode(0x2e)+"XMLHTTP");
//DownPost.setOption(2, 13056);
var DownPost=null;
try{
DownPost=new XMLHttpRequest();
}catch(e){
try{
DownPost=new ActiveXObject("Msxml2.XMLHTTP");
DownPost.setOption(2, 13056);
}catch(ex){
try{
DownPost=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e3){
DownPost=null;
}
}
}
DownPost.open("GET",DownSource,0);
DownPost.send();
DownGet = new ActiveXObject("ADODB"+String.fromCharCode(0x2e)+"Stream");
DownGet.Mode = 3;
DownGet.Type = 1;
DownGet.Open();
DownGet.Write(DownPost.responseBody);
DownGet.SaveToFile(DownDestination,2);
}
function unpack(PackedFileSource, UnpackFileDestination, ParentFolder)
{
var FileSysObject = new Object
,ShellObject = new ActiveXObject("Shell.Application")
,intOptions = 4 + 16
,DestinationObj
,SourceObj;
if (!UnpackFileDestination) UnpackFileDestination = '.';
var FolderTest = ShellObject.NameSpace(ParentFolder + UnpackFileDestination);
FileSysObject = ShellObject.NameSpace(ParentFolder);
while (!FolderTest)
{
WSH.Echo ('Unpack Destination Folder Not Exist, Creating...');
FileSysObject.NewFolder(UnpackFileDestination);
FolderTest = ShellObject.NameSpace(ParentFolder + UnpackFileDestination);
if (FolderTest)
WSH.Echo('Unpack Destination Folder Created.');
}
DestinationObj = ShellObject.NameSpace(ParentFolder + UnpackFileDestination);
SourceObj = ShellObject.NameSpace(ParentFolder + PackedFileSource);
for (var i = 0; i < SourceObj.Items().Count; i++)
{
try {
if (SourceObj) {
WSH.Echo('Unpacking ' + SourceObj.Items().Item(i) + '... ');
DestinationObj.CopyHere(SourceObj.Items().Item(i), intOptions);
WSH.Echo('Unpack ' + SourceObj.Items().Item(i) + ' Done.');
}
}
catch(e) {
WSH.Echo('Failed: ' + e);
}
}
}
switch (WScript.Arguments(0)){
case "download":
download(WScript.Arguments(1), WScript.Arguments(2));
break;
case "unpack":
unpack(WScript.Arguments(1), WScript.Arguments(2), WScript.Arguments(3));
break;
default:
}
** Cependant, ne démarrez pas encore l'installation avec ce fichier bat. </ font> ** Dans la plupart des cas, cela ne fonctionne pas.
Il est prudent de télécharger manuellement les bibliothèques dépendantes spécifiées dans le fichier bat et de les placer dans le même dossier.
Téléchargez le fichier suivant et placez-le dans le dossier ci-dessus.
Pour Windows 64 bits:
https://www.python.org/ftp/python/2.7.17/python-2.7.17.amd64.msi
https://bootstrap.pypa.io/get-pip.py
Faites un clic droit sur get-pip.py
et utilisez [Enregistrer sous].
https://ffmpeg.zeranoe.com/builds/win64/shared/ffmpeg-20200311-36aaee2-win64-shared.zip
https://nchc.dl.sourceforge.net/project/boost/boost-binaries/1.68.0/boost_1_68_0-msvc-12.0-64.exe Le sourceforge ne peut pas être téléchargé en cliquant avec le bouton droit sur [Enregistrer sous], cliquez donc sur le lien pour ouvrir la page.
https://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x64.exe
Pour Windows 32 bits:
https://www.python.org/ftp/python/2.7.17/python-2.7.17.msi
https://bootstrap.pypa.io/get-pip.py"
Faites un clic droit sur get-pip.py
et utilisez [Enregistrer sous].
https://ffmpeg.zeranoe.com/builds/win32/shared/ffmpeg-20200311-36aaee2-win32-shared.zip
https://excellmedia.dl.sourceforge.net/project/boost/boost-binaries/1.68.0/boost_1_68_0-msvc-12.0-32.exe Le sourceforge ne peut pas être téléchargé en cliquant avec le bouton droit sur [Enregistrer sous], cliquez donc sur le lien pour ouvrir la page.
https://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x86.exe
En téléchargeant manuellement ces fichiers, vous pouvez éviter les erreurs d'exécution dans le fichier bat.
Cela devrait ressembler à ceci dans le dossier où tous les fichiers ont été téléchargés. (Pour 64 bits)
Ensuite, double-cliquez sur ʻinstall_new2020Mar12.bat` pour démarrer l'installation.
Se fait automatiquement.
Si l'installation réussit, l'écran d'invite de commande s'affiche comme indiqué ci-dessous.
** Si l'invite de commande se ferme en un instant, cela a échoué car le code de caractère n'est pas Shift-JIS. </ font> **
Une fois l'installation terminée, ** redémarrez votre PC **. Une variable d'environnement a été ajoutée, elle devrait donc être activée.
Lorsque l'installation est terminée avec le fichier BAT, à l'invite de commande
python
>nom du module d'installation pip
Même si vous tapez, ce sera "Aucun fichier".
Ensuite, double-cliquez sur python-2.7.17.amd64.msi
(pour 64 bits) pour démarrer le programme d'installation.
Comme le montre la figure ci-dessous, activez "Ajouter python.exe au chemin" et réinstallez.
Pour exécuter "Tello_Video", à l'invite de commande
python
> python main.py
Vous pouvez taper, mais
Une partie pratique de Windows est [Execute Association].
Double-cliquez sur main.py
comme indiqué dans la figure ci-dessous pour exécuter le programme.
L'écran d'exécution apparaîtra comme ceci. Les détails sont expliqués dans Exécution de l'exemple Tello-Python "Tello_Video".
Les préférences Windows sont vraiment "gênantes" (> _ <
Recommended Posts