Récemment mis en place un petit projet pour se familiariser avec Python. Dans le processus de fabrication du distribuables du projet, j'ai créé les éléments suivants setup.py
:Problème lors de l'installation de mon package Python 3
# -*- coding: utf-8 -*-
import re
from setuptools import setup
setup(
name = 'bfi',
packages = ['bfi'],
entry_points = {
'console_scripts' : ['bfi = bfi.bfi:main']
},
version = '1.0',
description = 'Brainf*ck Interpreter w/Shell-Mode',
author = 'Kyle Martinez',
install_requires = ['getch', 'overloading']
)
Je puis tenté d'installer le package à partir de la ligne de commande, comme ceci:
python3 setup.py install
Ce qui semble fonctionner! L'exécution de la commande me donne la sortie suivante:
running install
running bdist_egg
running egg_info
writing requirements to bfi.egg-info/requires.txt
writing top-level names to bfi.egg-info/top_level.txt
writing bfi.egg-info/PKG-INFO
writing dependency_links to bfi.egg-info/dependency_links.txt
writing entry points to bfi.egg-info/entry_points.txt
reading manifest file 'bfi.egg-info/SOURCES.txt'
writing manifest file 'bfi.egg-info/SOURCES.txt'
installing library code to build/bdist.macosx-10.6-intel/egg
running install_lib
running build_py
creating build/bdist.macosx-10.6-intel/egg
creating build/bdist.macosx-10.6-intel/egg/bfi
copying build/lib/bfi/__init__.py -> build/bdist.macosx-10.6-intel/egg/bfi
copying build/lib/bfi/__main__.py -> build/bdist.macosx-10.6-intel/egg/bfi
copying build/lib/bfi/bfi.py -> build/bdist.macosx-10.6-intel/egg/bfi
copying build/lib/bfi/bficore.py -> build/bdist.macosx-10.6-intel/egg/bfi
byte-compiling build/bdist.macosx-10.6-intel/egg/bfi/__init__.py to __init__.cpython-34.pyc
byte-compiling build/bdist.macosx-10.6-intel/egg/bfi/__main__.py to __main__.cpython-34.pyc
byte-compiling build/bdist.macosx-10.6-intel/egg/bfi/bfi.py to bfi.cpython-34.pyc
byte-compiling build/bdist.macosx-10.6-intel/egg/bfi/bficore.py to bficore.cpython-34.pyc
creating build/bdist.macosx-10.6-intel/egg/EGG-INFO
copying bfi.egg-info/PKG-INFO -> build/bdist.macosx-10.6-intel/egg/EGG-INFO
copying bfi.egg-info/SOURCES.txt -> build/bdist.macosx-10.6-intel/egg/EGG-INFO
copying bfi.egg-info/dependency_links.txt -> build/bdist.macosx-10.6-intel/egg/EGG-INFO
copying bfi.egg-info/entry_points.txt -> build/bdist.macosx-10.6-intel/egg/EGG-INFO
copying bfi.egg-info/requires.txt -> build/bdist.macosx-10.6-intel/egg/EGG-INFO
copying bfi.egg-info/top_level.txt -> build/bdist.macosx-10.6-intel/egg/EGG-INFO
zip_safe flag not set; analyzing archive contents...
creating 'dist/bfi-1.0-py3.4.egg' and adding 'build/bdist.macosx-10.6-intel/egg' to it
removing 'build/bdist.macosx-10.6-intel/egg' (and everything under it)
Processing bfi-1.0-py3.4.egg
Removing /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/bfi-1.0-py3.4.egg
Copying bfi-1.0-py3.4.egg to /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages
bfi 1.0 is already the active version in easy-install.pth
Installing bfi script to /Library/Frameworks/Python.framework/Versions/3.4/bin
Installed /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/bfi-1.0-py3.4.egg
Processing dependencies for bfi==1.0
Searching for overloading==0.5.0
Best match: overloading 0.5.0
Adding overloading 0.5.0 to easy-install.pth file
Using /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages
Searching for getch==1.0
Best match: getch 1.0
Adding getch 1.0 to easy-install.pth file
Using /Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages
Finished processing dependencies for bfi==1.0
Cependant, quand je vais à la ligne de commande et d'exécuter bfi
, je reçois un grand « SyntaxError ol:
Traceback (most recent call last):
File "/usr/local/bin/bfi", line 9, in <module>
load_entry_point('bfi==1.0', 'console_scripts', 'bfi')()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", li
ne 357, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", li
ne 2394, in load_entry_point
return ep.load()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", li
ne 2108, in load
entry = __import__(self.module_name, globals(),globals(), ['__name__'])
File "/Library/Python/2.7/site-packages/bfi-1.0-py2.7.egg/bfi/bfi.py", line 42
print('➲ ', end='')
^
SyntaxError: invalid syntax
Je suis un peu nouveau à tout cela, j'apprécierais toute aide que je pourrais recevoir! Comment résoudre ça?
Note: Comme vous pouvez l'avoir déduit, mon Macbook a plusieurs versions de Python installées.
Il n'y a pas de différence entre les deux déclarations 'print' dans votre avant-dernier paragraphe. –
il y a une petite différence. voir l'espace après l'impression. En premier lieu, il sera considéré comme un tuple à cause de l'espace. En seconde, il sera considéré comme des arguments de fonction. – sukrit007
Je sais que l'espace est là. Ce que je veux dire, c'est qu'il n'y a pas de différence fonctionnelle. L'espace n'a pas d'importance. Ce n'est pas une syntaxe valide pour un tuple, que l'espace soit précédé ou non. –