[PYTHON] Une histoire qui a souffert d'une différence de système d'exploitation lors de la tentative d'implémentation d'un article

image.png

Il y a Étude pour générer librement le corps humain de différentes formes et poses de corps, et un programme qui fonctionne sur Python est distribué (bien qu'il s'agisse d'un système d'enregistrement) Nous sommes.

LISEZ-MOI

System Requirements:
====================
Operating system: OSX, Linux

Parce qu'il dit, Windows n'est pas censé. Cela dit, je pensais que cela fonctionnerait, et à la fin j'ai pu l'exécuter dans mon environnement (Windows10 64 bits), mais j'ai entendu dire que j'avais beaucoup de problèmes.

Le piège 1 doit passer

C'était une note personnelle, mais pour le moment. J'ai mon propre module stocké localement, donc je dois le mettre dans mon PATH. Comme indiqué dans le README, sur Mac à la fin de .bash_profile dans votre répertoire personnel

SMPL_LOCATION=~/smpl
export PYTHONPATH=$PYTHONPATH:$SMPL_LOCATION

Ajoutez les lettres.

Sous Windows, vous devez définir le vôtre en allant dans Panneau de configuration> Compte utilisateur> Compte utilisateur (Pourquoi dans un endroit aussi étrange ...) et" Modifier les variables d'environnement ".

La série Trap 2 Python est 2

Cela a été résolu en un instant, mais c'était un piège. Comme l'instruction du programme est une série Python 2, l'environnement Python à utiliser doit également être une série 2. Si les versions sont différentes, le format de l'instruction print est différent en premier lieu, et les modules peuvent ne pas être complets avant un problème aussi insignifiant, il est donc extrêmement rare qu'elle puisse être exécutée telle quelle.

SyntaxError: Missing parentheses in call to 'print'. Did you mean print(…)?

Si vous obtenez l'erreur, il est fort probable que vous exécutiez un programme de la série 2 sur un Python de la série 3.

Le nom du module Trap 3 est légèrement différent

README requiert Numpy, Scipy, Chumpy, OpenCV, et bien sûr vous l'installerez avec pip, mais le dernier ʻOpenCVne frappera pas. Si vous l'exécutez tel quel, on dit qu'il est inutile s'il n'y a pas de module appelécv2, donc vous ne pouvez pas essayer de taper avec cv2`. En termes de résultats,

pip install opencv-python

C'était la bonne réponse. Eh bien, cela peut être du bon sens dans le quartier ...

Piège 4 EOFError

C'était comme un avant-poste, mais maintenant c'est un vrai piège **. Si vous pensez que l'environnement est sûr et que vous pouvez l'exécuter, l'erreur suivante apparaîtra.

Traceback (most recent call last):
  File "hello_smpl.py", line 48, in <module>
    m = load_model( '../../models/basicModel_f_lbs_10_207_0_v1.0.0.pkl' )
  File "C:\Users\~~~\smpl\smpl_webuser\serialization.py", line 116, in load_model
    dd = ready_arguments(fname_or_dict)
  File "C:\Users\~~~\smpl\smpl_webuser\serialization.py", line 80, in ready_arguments
    dd = pickle.load(open(fname_or_dict))
EOFError

Lorsque je cherche sur Google avec ʻEOF Error`, un avertissement apparaît lors de la lecture d'un fichier vide, mais le fichier peut être spécifié correctement. En outre, le message d'erreur est légèrement différent de celui qui apparaît dans le cas. Apparemment, peu importe si le fichier est vide ou non. Je me demandais ce que cela signifiait pendant un moment, mais quand j'ai procédé à l'enquête par la suite,

Sous Windows, lorsque vous traitez des fichiers binaires dans le module pickle, vous devez le spécifier avec des caractères,

Il paraît que. [(Article de référence)](https://ja.stackoverflow.com/questions/18992/python-pickle%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3 % 83% AB% E3% 83% A2% E3% 83% BC% E3% 83% 89-% E3% 83% 90% E3% 82% A4% E3% 83% 8A% E3% 83% AA% E3% 83% A2% E3% 83% BC% E3% 83% 89% E3% 81% AE% E5% BF% 85% E7% 84% B6% E6% 80% A7) Plus précisément, il se trouve dans le fichier serialization.py inclus

dd = pickle.load(open(fname_or_dict))

La phrase

dd = pickle.load(open(fname_or_dict,`rb`))

Doit être. Maintenant, vous pouvez enfin le faire. Au moins dans mon environnement.

Plus tard, lorsque je l'ai vérifié avec MacBook Pro, je n'ai pas eu un tel problème avec MacOSX. Différence de système d'exploitation …….

Piège qui n'a pas pu être résolu opendr

Quand j'essaye d'exécuter un autre exemple de programme, il dit qu'il n'y a pas de module appelé ʻopendr. Ensuite, j'ai pensé que je ferais pip` ... mais une erreur. Quand j'ai lu le message d'erreur, on m'a demandé d'insérer Compilateur C ++, donc je l'ai entré et j'ai réessayé. Mais,

    LINK : warning LNK4044:option'/lstdc++'Est invalide. Il sera ignoré.
    LINK : fatal error LNK1181:Fichier d'entrée'OSMesa.lib'Je ne peux pas l'ouvrir.
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x64\\link.exe' failed with exit status 1181

Quand je recherche, je trouve des cas similaires, mais le fichier en question (ʻOSMesa.lib) est différent, il semble donc qu'il ne peut pas être détourné. Et si vous cochez cette ʻOS Mesa, vous pouvez voir que c'est une bibliothèque installée sous Linux.

Aucune erreur lorsque je l'ai essayé avec MacBook Pro. Il semble que ce soit un module pour afficher la visionneuse en 3D. Mais là aussi, la différence d'OS ...

Ce que je pensais

Il existe de nombreuses différences dans les versions et les systèmes d'exploitation ...

Recommended Posts

Une histoire qui a souffert d'une différence de système d'exploitation lors de la tentative d'implémentation d'un article
Une histoire qui a échoué lors de la tentative de suppression du suffixe d'une chaîne avec rstrip
Une histoire bloquée lors de la tentative de mise à niveau de la version Python avec GCE
Une histoire sur la tentative d'implémentation de variables privées en Python.
Une histoire à laquelle j'étais accro à appeler Lambda depuis AWS Lambda.
Une histoire d'essayer d'automatiser un chot lorsque vous cuisinez vous-même
Une histoire que j'ai corrigée lorsque j'ai obtenu le journal Lambda de Cloudwatch Logs
Points à noter lors du passage de NAOqi OS 2.4.3 à 2.5.5
Une histoire à laquelle j'étais accro après la communication SFTP avec python
Une histoire qui a permis de créer automatiquement une liste de lecture Anison à partir de vos fichiers musicaux
Une histoire qui a trébuché lorsque j'ai créé un bot de chat avec Transformer
Une histoire sur la création d'un système d'exploitation compatible UNIX / Linux à partir de zéro
Technologie qui prend en charge Jupyter: Tralets (histoire d'essayer de déchiffrer)
[Python] Une histoire qui semblait tomber dans un piège à contourner
Une histoire qui n'a pas fonctionné lorsque j'ai essayé de me connecter avec le module de requêtes Python
Une histoire dans laquelle l'algorithme est arrivé à une conclusion ridicule en essayant de résoudre correctement le problème du voyageur de commerce
À propos de l'erreur que j'ai rencontrée en essayant d'utiliser Adafruit_DHT à partir de Python sur Raspberry Pi
Phénomène selon lequel les caractères disparaissent lors de la tentative de saisie d'un caractère sans Entrée
L'histoire de l'erreur de hachage est apparue lors de l'utilisation de Pipenv
Une histoire qui avait du mal à traiter en boucle 3 millions de données d'identification
Remarques sur la connexion Bluetooth d'un smartphone / PC à Raspeye 4
L'histoire selon laquelle le gardien était confiné lorsque le laboratoire a été converti à l'IoT
Une histoire où un débutant est coincé en essayant de créer un environnement de plug-in vim 8.2 + python 3.8.2 + lua sur Ubuntu 18.04.4 LTS
Une histoire sur la création d'un programme qui augmentera le nombre d'abonnés Instagram de 0 à 700 en une semaine