経由のpython3で私の地元のモジュールをインポートします。bin/mkbib.py
とは私のようにディレクトリ構造を持っているピップ
tree
.
├── bin
│ └── mkbib.py
├── LICENSE
├── mkbib
│ ├── __init__.py #empty file
│ ├── menubar.ui #a xml file. where should I place it?
│ ├── menu.py
│ ├── pybib.py
│ └── view.py
├── mkbib.desktop.in #should be copied to /usr/local/applications
├── README
└── setup.py
はmkbib/
内のファイルをインポートするメインファイルです。そしてbin/mkbib.py
に、私が使用:すべてのファイルが同じディレクトリにある場合
import mkbib.menu as menu
import mkbib.view as view
# import view
# import pybib
、最後の2行は十分にあります。私は受け入れられた答えhereに従ってそれらを分けた。
しかし、今、私はコードを実行しようとしていたとき、私はエラーを取得しています:
File "mkbib.py", line 26, in __init__
self.TreeView = view.treeview()
NameError: name 'view' is not defined
私の究極の目標は、私がリンクされている問題と同じ、/bin/
にmkbib
アプリをインストールすることで、私は何の成功もありません。
マイsetup.py
は次のとおりです。
from setuptools import setup, find_packages
from codecs import open
from os import path
here = path.abspath(path.dirname(__file__))
with open(path.join(here, 'README'), encoding='utf-8') as f:
long_description = f.read()
setup(
name='mkbib',
version='0.1',
description='BibTeX Creator',
url='https://github.com/rudrab/mkbib',
author='Rudra Banerjee',
author_email='[email protected]',
license='GPLv3',
packages=['mkbib'],
package_dir={'mkbib': 'mkbib'},
scripts=['bin/mkbib.py']
)
私はsetup.py
を実行すると、私が取得します。
sudo python3 setup.py develop
running develop
running egg_info
writing top-level names to mkbib.egg-info/top_level.txt
writing mkbib.egg-info/PKG-INFO
writing dependency_links to mkbib.egg-info/dependency_links.txt
reading manifest file 'mkbib.egg-info/SOURCES.txt'
writing manifest file 'mkbib.egg-info/SOURCES.txt'
running build_ext
Creating /usr/lib/python3.5/site-packages/mkbib.egg-link (link to .)
mkbib 0.1 is already the active version in easy-install.pth
Installing mkbib.py script to /usr/bin
Installed /home/rudra/Devel/mkbib/Mkbib
Processing dependencies for mkbib==0.1
Finished processing dependencies for mkbib==0.1
私もmkbib
にPYTHONPATHエクスポートしようとしている:私が言ったように、すべてのファイルが同じディレクトリにある場合、
echo $PYTHONPATH
~/Devel/mkbib/Mkbib/mkbib
その作業完璧。
mkbib.py
の構造がある(GeckStarで尋ねたとして):
#!/usr/bin/python3
import gi
import sys
# import mkbib
import mkbib.menu as menu
import mkbib.view as view
# import view
# import pybib
import urllib.parse as lurl
import webbrowser
import os
from gi.repository import Gtk, Gio # , GLib, Gdk
gi.require_version("Gtk", "3.0")
class Window(Gtk.ApplicationWindow):
def __init__(self, application, giofile=None):
Gtk.ApplicationWindow.__init__(self,
application=application,
default_width=1000,
default_height=200,
title="mkbib")
self.TreeView = view.treeview()
self.MenuElem = menu.MenuManager()
self.Parser = pybib.parser()
self.name = ""
.........
class mkbib(Gtk.Application):
def __init__(self):
Gtk.Application.__init__(self)
self.connect("startup", self.startup)
self.connect("activate", self.activate)
..........
def install_excepthook():
""" Make sure we exit when an unhandled exception occurs. """
old_hook = sys.excepthook
def new_hook(etype, evalue, etb):
old_hook(etype, evalue, etb)
while Gtk.main_level():
Gtk.main_quit()
sys.exit()
sys.excepthook = new_hook
if __name__ == "__main__":
app = mkbib()
r = app.run(sys.argv)
sys.exit(r)
親切に役立ちます。
パッケージをインストールするには実際に* '* setup.py'を実行しましたか? – jonrsharpe
jonrsharpeはい、誤って別のファイル構造で古い 'setup.py'を表示しています。 (今現在の) 'setup.py'を修正してください。実行されました。親切な一見。 – BaRud
残りの 'mkbib.py'ファイル、特に最初の26行はエラーが発生している場所から見ると便利です。 – GeckStar