というわけで、pyveriog_toolboxをpip経由でラクチンインストールするための準備を整えた。
なんかpyverilogもいつのまにか(前から?)pipに対応していたので、私も時代に追いつくべく。
もちろんpipアップロードは初体験です。
基本的に参考にしたのは
こちらの素晴らしきブログである。
といいつつ少しつまづいたので備忘録を。
事件その1、認証失敗
まず、上記ブログにおいてpypiのアカウント作成後、
$ python setup.py register
を試したところ、
$ Server(401) basic auth failed
みたいなエラーが出てしまった。なんやねんなんやねんと大騒ぎつつ色々試していたが、サイトに情報を登録するだけではアカウント登録できていなかったのである。
pypiでアカウント作成後、登録しているメールに
To complete your registration of the user "(ユーザー名)" with the python module
index, please visit the following URL:
という内容のメールが来るので、慌てず深呼吸をしつつリンクをクリックしてアカウント登録を完了しましょう。
それ以外には.pypircファイルのユーザー名やパスワードのミスが考えられます。ホームディレクトリに作成した.pypircの内容を確認しましょう。
もう一度registerを試したところ
$ Server(200): OK
を無事確認。
事件その2、アップロードできない事件
上記事件1を解決後、どや顔で
$ python setup.py upload
叩いたところ
$ error: No dist file created in earlier command
となってしまた。これもね、全然分からないのでエラーメッセージをググリマス。
Adding a Package to PyPi For the 1st Time. - Jamie Curle
そしたらこちらのブログに「特に明確な理由はねーがこっちのコマンドを試した」
$ python setup.py sdist upload
と書いてあったので私も特に理由はねーが試した。
すると、
$ Server(200): OK
を確認。よくわかんないけどできてそうだからいっか、
事件その3、ダウンロードできない事件
アップロードに成功したので今度はpip installを試してみる。
$ pip install pyverilog_toolbox
すると、
$ Could not find any downloads that satisfy the requirements pyverilog_toolbox
あばばばば、と奇声をあげながら色々叫んでいるうちに、よくよく調べてみると\pyverilog_tool_box.egg-infoなるディレクトリができていることに気づく。
あれなんでtoolとboxの間に"_"が入っているんだっけ?と思いsetup.pyを見てみると、
from setuptools import setup, find_packages
import re
import os
version = '0.0.0'
def read(filename):
return open(os.path.join(os.path.dirname(__file__), filename)).read()
try:
import pypandoc
read_md = lambda f: pypandoc.convert(f, 'rst')
except ImportError:
print("warning: pypandoc module not found, could not convert Markdown to RST")
read_md = lambda f: open(f, 'r').read()
setup(name='pyverilog_tool_box',
version=version,
description='Pyverilog-based verification/design tools',
keywords = 'Verilog, Register Map, code clone',
author='Ryosuke Fukatani',
author_email='nannyakannya@gmail.com',
url='https://github.com/fukatani/Pyverilog_toolbox',
license="Apache License 2.0",
packages=find_packages(),
package_data={ 'pyverilog_toolbox' : ['testcode/*'], },
)
となっているのである。nameがまちがっとるやん。
【誤】
name='pyverilog_tool_box'
【正】
name='pyverilog_toolbox'
とまあしょぼいミスをなおして、パッケージ作成、登録、アップロードを行うと、
$ pip install pyverilog_toolbox
を叩くと無事インストールが出来た。ふう。
テストも動いた。と見せかけて1個動かなかった。どうやらテストに不備があるようなので近日修整予定。
というわけで、pyverilog_toolboxもpipでのインストールに対応しました。色々とドキュメントを直さないと。