memo.xight.org

日々のメモ

カテゴリ : Python

1ページ目 / 全2ページ

python3.9.4 + pyenv + homebrew

Summary

% pyenv install 3.9.4
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.9.4.tar.xz...
-> https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tar.xz
Installing Python-3.9.4...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk

BUILD FAILED (OS X 11.3 using python-build 1.2.26-9-g2924886a)

Inspect or clean up the working tree at /var/folders/ys/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/T/python-build.YYYYMMDDhhmmss.nnnnn
Results logged to /var/folders/ys/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/T/python-build.YYYYMMDDhhmmss.nnnnn.log

Last 10 log lines:
/var/folders/ys/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/T/python-build.YYYYMMDDhhmmss.nnnnn ~/Desktop
/var/folders/ys/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/T/python-build.YYYYMMDDhhmmss.nnnnn /Python-3.9.4 /var/folders/ys/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/T/python-build.YYYYMMDDhhmmss.nnnnn ~/Desktop
checking build system type... Invalid configuration `arm64-apple-darwin20.4.0': machine `arm64-apple' not recognized
configure: error: /bin/sh ./config.sub arm64-apple-darwin20.4.0 failed


config.subにpatch をあててインストール

timestamp='2018-04-24' のconfig.sub を timestamp='2021-01-08' に変更するパッチをあてる

% pyenv install --patch 3.9.4 <<(curl -sSL https://gist.githubusercontent.com/xight/a064b1fd82a4529eb6ebbde13d95ea8c/raw/8e75b31ea3e9d4b9376e976fa9626401ae217f6c/config.patch)
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.9.4.tar.xz...
-> https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tar.xz
Installing Python-3.9.4...
patching file config.sub
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.9.4 to /Users/username/.anyenv/envs/pyenv/versions/3.9.4


Reference

GitHub Gist - xight/config-sub.patch (2018-04-24 -> 2021-01-08)
https://gist.github.com/xight/74f84b8bde9ac6f539c3db20c2897d46

GitHub Gist - xight/config.patch config.sub (2018-04-24 -> 2021-01-08), config.guess (2018-03-08 -> 2021-01-25)
https://gist.github.com/xight/a064b1fd82a4529eb6ebbde13d95ea8c

Apple Silicon + Big Sur 11.3 Beta + anyenv + pyenv + python3.10.0a5

Summary

pyenv で python をインストールすると arm64-apple が認識できない。

checking build system type... Invalid configuration `arm64-apple-darwin20.4.0': machine `arm64-apple' not recognized
configure: error: /bin/sh ./config.sub arm64-apple-darwin20.4.0 failed

config.subにpatch をあててインストール ([2021-04-16] 追記)

% pyenv install --patch 3.10.0a5 <<(curl -sSL https://gist.githubusercontent.com/xight/74f84b8bde9ac6f539c3db20c2897d46/raw/cf2fd7ff5572afafb54d062f866e40d5e65cab43/config-sub.patch)


config.sub を入れ替えて configure (ad hoc)

$ cd /var/folders/PATH/TO/python-build.YYYYMMDDhhmmss.xxxxx.XXXXXX/Python3.10.0a5
$ mv config.sub config.sub.bak
$ wget https://raw.githubusercontent.com/gcc-mirror/gcc/master/config.sub
$ cd ..
$ ./configure --prefix=$(pyenv root)/versions/3.10.0a5 \
              --enable-unicode=ucs4 \
              --with-openssl=$(brew --prefix openssl) \
              --enable-optimizations
$ make
$ make install


symlinkを作成

$ cd $(pyenv prefix)/bin
$ ln -s python3.10 python
$ ln -s pydoc3.10 pydpc
$ ln -s idle3.10 idle
$ ln -s pip3.10 pip


確認

$ pyenv global 3.10.0a5
$ python --version
Python3.10.0a5
$ lipo -archs $(pyenv prefix)/bin/python3.10
arm64


課題: Universal binary でmakeできていない

PATH/TO/Python-3.x.x/Mac/README.rst を参照

$ ./configure --enable-universalsdk \
			  --with-universal-archs=universal2

python3.9.0 + pyenv + macOS Big Sur + Homebrew

Install

CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" CPPFLAGS="-I$(brew --prefix zlib)/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" pyenv install 3.9.0

Python3.5 + Django1.10 + pyenv + pyvenv

Summary

% pyenv install 3.5.2
% pyenv local 3.5.2
% pyvenv django-learning-env
% source django-learning-env/bin/activate
(django-learning-env) % pip install Django


Djangoのインストール確認

(django-learning-env) % python -m django --version
1.10.3


プロジェクト作成、動作確認

% django-admin startproject mysite
% python mysite/manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
November 28, 2016 - 08:38:56
Django version 1.10.3, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.


127.0.0.1:8000 にアクセスして, 以下のようなメッセージが表示されればOK

It worked!
Congratulations on your first Django-powered page.

エラー…

以前から pyenv で入れていた python3.5.2 で manage.py を動作させたらエラー発生。
(No module named _sqlite3)
pyenv で 3.5.2 を入れ直したらエラーが出なくなった。

% pyenv install 3.5.2


Reference

Django Documentation
https://docs.djangoproject.com/

Djangoドキュメント
https://docs.djangoproject.com/ja/

StackOverflow - No module named _sqlite3
http://stackoverflow.com/questions/1210664/no-module-named-sqlite3

anyenv で pyenv の設定

Install

$ pyenv install X.X.X

pyenv-virtualenv の追加

$ git clone https://github.com/yyuu/pyenv-virtualenv.git $PYENV_ROOT/plugins/pyenv-virtualenv
$ exec $SHELL -l

rbenv, pyenv, plenv, phpenv から anyenv への移行

*env を remove

$ brew list |grep env
plenv
pyenv
pyenv-virtualenv
rbenv
$ brew remove plenv
$ brew remove pyenv
$ brew remove pyenv-virutalenv
$ brew remove rbenv

anyenv インストール

$ git clone https://github.com/riywo/anyenv ~/.anyenv

zshrc

if [ -d $HOME/.anyenv ] ; then
	export PATH="$HOME/.anyenv/bin:$PATH"
	eval "$(anyenv init -)"

	for D in `ls $HOME/.anyenv/envs`
	do
		export PATH="$HOME/.anyenv/envs/$D/shims:$PATH"
	done
fi

シェル再読み込み

$ exec $SHELL -l

anyenv で *env をインストール

$ anyenv install plenv
$ anyenv install pyenv
$ anyenv install rbenv
$ anyenv install phpenv

anyenv-update

$ mkdir -p $(anyenv root)/plugins
$ git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update
$ anyenv update

anyenv-exec

$ mkdir -p $(anyenv root)/plugins
$ git clone git://github.com/aereal/anyenv-exec.git $(anyenv root)/plugins/anyenv-exe
$ anyenv --version

anyenv-git

$ mkdir -p $(anyenv root)/plugins
$ git clone https://github.com/znz/anyenv-git.git $(anyenv root)/plugins/anyenv-git
$ anyenv git gc

Refence

GitHub - anyenv
https://github.com/riywo/anyenv

GitHub - anyenv-update
https://github.com/znz/anyenv-update

GitHub - anyenv-git
https://github.com/znz/anyenv-git

GitHub - anyenv-exec
https://github.com/aereal/anyenv-exec

Python でリスト内の辞書内の値でソート

Summary

リスト内の辞書の中の値を基にソートする場合のサンプル

Sample

list = [
	{"from": datetime(2014,2,1,0,0,0), "what": "....." },
	{"from": datetime(2014,1,1,0,0,0), "what": "....." },
	{"from": datetime(2014,1,2,0,0,0), "what": "....." },
]

list.sort(cmp=lambda x,y: cmp(x["from"],y["from"]))

SimString - Pythonの類似文字列検索ライブラリ

Summary

類似文字列検索のためのPythonのライブラリ。
検索漏れがなく、高速な検索を実現する。
1クエリあたり Google Web 1Tコーパスで1.10ms程度で検索可能とのこと。
BSDライセンス。

Reference

SimString (類似文字列検索ライブラリ) 1.0 released
http://www.chokkan.org/blog/archives/285

SimString
http://www.chokkan.org/software/simstring/

LDC Catalog - Web 1T 5-gram Version 1
http://www.ldc.upenn.edu/Catalog/CatalogEntry.jsp?catalogId=LDC2006T13

coLinux 上の Emacs の kill-ring の内容をWindowsのクリップボードと同期する

Reference

naoyaのはてなダイアリー - coLinux 上の Emacs の kill-ring の内容をWindowsのクリップボードと同期する by Perl
http://d.hatena.ne.jp/naoya/20061125/1164466544

odz buffer - coLinux で Emacs の kill-ring の内容をWindowsのクリップボードと同期する
http://d.hatena.ne.jp/odz/20061125/1164433815

odz buffer - coLinux で Emacs の kill-ring の内容をWindowsのクリップボードと同期する #2
http://d.hatena.ne.jp/odz/20061125/1164437987

Silva - ZopeによるCMS

Summary

オランダのソフトウェア開発会社 Infrae が開発している,Zopeを使用したCMS.
コンテンツを XML で保存している.

Zope を使用したCMS Plone と比較すると,
Plone はポータルサイト向き,Silva はWebサイト構築向き,らしい.

DocmaServer

Infrae 社は,Silvaのドキュメント (Silva XML) を XML-RPCでリモートからWordファイルとして取り出したり,
逆に,Wordファイルから Silva XMLに変換したりできる,DocmaServer も開発している.
DocmaServer は Windows + ActivePython で動作する.

Reference

Infrae Products: Silva
http://www.infrae.com/products/silva

Download: DocmaServer
http://www.infrae.com/download/DocmaServer

via

Kazuya Fukamachi's home page - Silvaについて
http://www.atransia.co.jp/home/fukamachi/Silva

Pyslide

Summary

  pygame[2005-02-13-5] を利用した XML ベースのプレゼンテーションソフト.
  日本語フォントを指定して,UTF-8で保存すれば日本語使用可能.

Reference

  Pyslide
  http://www.hispalinux.es/~setepo/pyslide/
Debian パッケージディレクトリ検索 (バイナリ) - pyslide

via

  TokuLog! - 2005-02-13 - pyslide
  http://tokuhirom.dnsalias.org/~tokuhirom/cl/2005-02-13-12.html

pygame 関連

Reference

  pygame - python game development
  http://www.pygame.org/
  Gembook.jp - ウヰキエリア - PyGame
  http://www.gembook.jp/tsum/page.pys?wiki=PyGame
  unixuser.org - Yusuke Shinyama - Documents - Pygame 関連文書
  http://www.unixuser.org/~euske/doc/pygame/

via

  読書記録ChangeLog - 2005-02-12
  http://dkiroku.com/2005-02-12-11.html
  http://dkiroku.com/2005-02-12-12.html
  http://dkiroku.com/2005-02-12-13.html

twisted

Summary

  Pythonで書かれたイベントドリブンなネットワークフレームワーク
  TCP
  UDP
  SSL/TLS
  multicast
  Unix sockets
  をサポート

サポートするプロトコル

  Jabber
  SIP
  FTP
  SSH, SFTP
  IMAP
  HTTP
  NNTP
  SOCKSv4 (server only)
  SMTP
  IRC
  telnet
  POP3
  AOL's instant messaging TOC
  OSCAR, used by AIM as well as ICQ (client only)
  DNS
  MouseMan
  finger
  Echo, discard, chargen and friends
  Twisted Perspective Broker

twistedを使用したプログラムのサンプル

  http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/181905
  実行方法

$ python pingpong.py
$ python pingpong.py localhost
$ python pingpong.py localhost

  Clientの表示

THROW 1 CATCH 2
THROW 3 CATCH 4
THROW 5 CATCH 6
THROW 7 CATCH 8
THROW 9 CATCH 10

  サーバの表示

CATCH 1 THROW 2
CATCH 3 THROW 4
CATCH 5 THROW 6
CATCH 7 THROW 8
CATCH 9 THROW 10

- Reference
  Twisted Matrix Laboratories
  http://twistedmatrix.com/
  Twisted API Document
  http://twistedmatrix.com/documents/current/api/

via

  TokuLog! - 2004-10-29
  http://www13.ocn.ne.jp/~tokuhiro/cl/2004-10-29.html#2004-10-29-15
  TokuLog! - 2004-10-29
  http://www13.ocn.ne.jp/~tokuhiro/cl/2004-10-29.html#2004-10-29-16