簡體   English   中英

安裝我的Python 3軟件包時出現問題

[英]Issue installing my Python 3 package

最近,我們組織了一個小項目來熟悉Python。 在使項目可分發的過程中,我創建了以下setup.py

# -*- 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']
)

然后,我嘗試從命令行安裝軟件包,如下所示:

python3 setup.py install

哪個似乎有效! 運行命令將為我提供以下輸出:

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 

但是,當我轉到命令行並運行bfi ,出現了一個很大的'ol SyntaxError:

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 

我有點陌生,因此,我將不勝感激! 我該如何解決?

注意:您可能已經推斷出,我的Macbook安裝了多個版本的Python。

看起來您還使用python2.7安裝了'byi'軟件包,可能使用了python setup.py install

當您通過byi運行控制台腳本時,shim腳本可能指向python 2.7。 您可以通過查看生成的shim腳本的第一行來確認: head -1 /usr/local/bin/byi

您可以嘗試刪除腳本/usr/local/bin/byi並使用python3重新運行安裝程序。 那應該在源代碼中生成一個帶有python3的新填充腳本。 您還可以通過添加其他選項來控制要使用的python: options = { 'build_scripts': { 'executable': '/usr/bin/env python3', }, }在setup.py中

此外,您的軟件包似乎與python 2.7不兼容。 錯誤的行將在python 2.7上失敗,因為較舊的版本除了元組而不是函數args之外: print '➲ ',而不是print('➲ ', end='')

如果確實需要python 2.x支持,則可以安裝六個模塊

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM