<virtualenv, Python> virtualenvをして、setuptoolsを試す。

Anacondaで、virtualenvをして、setuptoolsをためしてみた。

まずは、virtualenv
インストールしんといけん。デフォルトでははいっちょらん。

[1]> conda install virtualenv

で、virtualenv

[2]> virtualenv hello
Using base prefix 'C:\\Anaconda3'
New python executable in C:\msys64\home\Nekoyuki\tmp\hello\hello\Scripts\python.exe
copying C:\Anaconda3\python.exe => C:\msys64\home\Nekoyuki\tmp\hello\hello\Scripts\python.exe
Installing setuptools, pip, wheel...done.

[3]> cd hello/
Include/  Lib/  pip-selfcheck.json  Scripts/  tcl/

[4]> . Scripts/activate

[5]> which pip
/C/msys64/home/Nekoyuki/tmp/hello/hello/Scripts/pip

[6]> which python
/C/msys64/home/Nekoyuki/tmp/hello/hello/Scripts/python

[7]> export PYTHONPATH=/home/Nekoyuki/tmp/hello/hello/Lib/site-packages

[8]> echo $PYTHONPATH
/home/Nekoyuki/tmp/hello/hello/Lib/site-packages

[9]> pip freeze

みそは、PYTHONPATHを手動で切り替えないと、pipが正しく動かない。

で、hello.py、他スクリプトを書いてみた。(下記のリンク参照)

[10]> ls
helloworld/  Include/  Lib/  pip-selfcheck.json  Scripts/  tcl/

>tree helloworld/
helloworld/
├── helloworld
│   ├── __init__.py
│   └── hello.py
└── setup.py

1 directory, 3 files

で、pipをかます。

[11]> pip install ./helloworld
Processing c:\msys64\home\nekoyuki\tmp\hello\hello\helloworld
Installing collected packages: helloworld
  Running setup.py install for helloworld: started
    Running setup.py install for helloworld: finished with status 'done'
Successfully installed helloworld-0.0.0

インストールされたっぽい。確認してみる。

[12]> pip freeze
helloworld==0.0.0

[13]> ls
helloworld/  Include/  Lib/  pip-selfcheck.json  Scripts/  tcl/

[14]> ls Scripts/
activate      activate_this.py   easy_install-3.6.exe*  pip.exe*     python.exe*    wheel.exe*
activate.bat  deactivate.bat     greet.exe*             pip3.6.exe*  python36.dll*
activate.ps1  easy_install.exe*  greet-script.py*       pip3.exe*    pythonw.exe*

[15]> ls Lib/site-packages/
__pycache__/     helloworld-0.0.0-py3.6.egg-info/  pkg_resources/                wheel/
easy_install.py  pip/                              setuptools/                   wheel-0.30.0.dist-info/
helloworld/      pip-9.0.1.dist-info/              setuptools-38.4.0.dist-info/

ちゃんと、greetが、Scriptsの下にあるねー!
いけるね!

pypi.python.org

お世話になったところ。

その1 Python パッケージ管理技術まとめ (pip, setuptools, easy_install, etc)

その2

http://momijiame.tumblr.com/post/39580970098/python-の-setuppy-を書いてみる
momijiame.tumblr.com

<ATOM> Proxy越しのアップデート

Proxy越しでATOMを使ってるとき、、
で、モジュールのアップデート時に、下記のエラーが出た時、、、

Updating to “atom-mermaid@3.2.1” failed.Hide output…

gyp info it worked if it ends with ok
gyp info using node-gyp@3.4.0
gyp info using node@6.9.5 | win32 | ia32
gyp http GET https://atom.io/download/electron/v1.6.15/iojs-v1.6.15.tar.gz
gyp WARN install got an error, rolling back install
gyp ERR! install error 
gyp ERR! stack Error: unable to get local issuer certificate
gyp ERR! stack     at Error (native)
gyp ERR! stack     at TLSSocket.<anonymous> (_tls_wrap.js:1079:38)
gyp ERR! stack     at emitNone (events.js:86:13)
gyp ERR! stack     at TLSSocket.emit (events.js:185:7)
gyp ERR! stack     at TLSSocket._finishInit (_tls_wrap.js:603:8)
gyp ERR! stack     at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:433:38)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "C:\\Users\hage\\AppData\\Local\\atom\\app-1.23.3\\resources\\app\\apm\\bin\\node.exe" "C:\\Users\\hage\\AppData\\Local\\atom\\app-1.23.3\\resources\\app\\apm\\node_modules\\node-gyp\\bin\\node-gyp.js" "install" "--runtime=electron" "--target=1.6.15" "--dist-url=https://atom.io/download/electron" "--arch=ia32" "--ensure" "--proxy=http://proxy.hage.com:8080/"
gyp ERR! cwd C:\Users\hage\.atom
gyp ERR! node -v v6.9.5
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok 

次のおまじないを、ターミナル開いて叩く。

setx NODE_TLS_REJECT_UNAUTHORIZED 0

node-gyp中のが、承認するところでこけてるので、無視させればいいらしい。

github.com

<Linux, msys2, fzy> fzyを入れる。

世の中の人々の協力で、便利になっていくもんだ、、と思った。

msys2では、pecoさんが動かない。
でも、fzyというものがpecoの代わりにナイスに動くとのこと。
さっそくインストール。

msys2の場合、

ちょー楽。pacmanで一発。

>pacman -Syu fzy

Linuxの場合、

gitして、makeする。

>git clone https://github.com/jhawthorn/fzy.git
Cloning into 'fzy'...
remote: Counting objects: 1294, done.
remote: Total 1294 (delta 0), reused 0 (delta 0), pack-reused 1294
Receiving objects: 100% (1294/1294), 251.38 KiB, done.
Resolving deltas: 100% (807/807), done.

>cd fzy
ALGORITHM.md  CHANGELOG.md  LICENSE  Makefile  README.md  contrib/  deps/  fzy.1  src/  test/

>export PREFIX=/home/hage/local

>make
cp src/config.def.h config.h
cc -DVERSION=\"0.9\" -D_GNU_SOURCE -Wall -Wextra -g -std=c99 -O3 -pedantic -Ideps -c -o src/fzy.o src/fzy.c
cc -DVERSION=\"0.9\" -D_GNU_SOURCE -Wall -Wextra -g -std=c99 -O3 -pedantic -Ideps -c -o src/match.o src/match.c
cc -DVERSION=\"0.9\" -D_GNU_SOURCE -Wall -Wextra -g -std=c99 -O3 -pedantic -Ideps -c -o src/tty.o src/tty.c
cc -DVERSION=\"0.9\" -D_GNU_SOURCE -Wall -Wextra -g -std=c99 -O3 -pedantic -Ideps -c -o src/choices.o src/choices.c
cc -DVERSION=\"0.9\" -D_GNU_SOURCE -Wall -Wextra -g -std=c99 -O3 -pedantic -Ideps -c -o src/options.o src/options.c
cc -DVERSION=\"0.9\" -D_GNU_SOURCE -Wall -Wextra -g -std=c99 -O3 -pedantic -Ideps -c -o src/tty_interface.o src/tty_interface.c
cc -Wall -Wextra -g -std=c99 -O3 -pedantic -Ideps  -o fzy src/fzy.o src/match.o src/tty.o src/choices.o src/options.o src/tty_interface.o -lpthread

>make install
mkdir -p /home/hage/local/bin
cp fzy /home/hage/local/bin/
chmod 755 /home/hage/local/bin/fzy
mkdir -p /home/hage/local/share/man/man1
cp fzy.1 /home/hage/local/share/man/man1/
chmod 644 /home/hage/local/share/man/man1/fzy.1

github.com

参考にさせてもらいました。
qiita.com

<Anaconda> Python 3.6を入れる。

Python3.6になっている。
前に入れたAnacondaは、3.5.1。その後、アップデートかけて、3.5.4
特段3.6ですることはないが、3.6にしたい。
conda3.6を入れてみたが、デフォルトを3.6にすることができないっぽい。

なので、Anacondaをインストールし直すことにした。
今あるAnacondaがあるディレクトC\Anaconda3を念のためバックアップコピーして、
Anacondaをアンインストールする。
で、新Anaconda ```Python 3.6.3 (Anaconda3 5.0.1 64-bit)をインストール。

ここからダウンロード。
:: Anaconda Cloud

で、管理者権限でインストール。
f:id:nekoyukimmm:20180111215404p:plain

前と同じディレクトリ名にしておく。
f:id:nekoyukimmm:20180111215412p:plain

で、
f:id:nekoyukimmm:20180111215420p:plain

終わり。

<Anaconda, conda, python> Anacondaでpipをちゃんと動かす。

Windowsにインストールした、Anacondaさん上で、
condaで環境を変更した時に、pipをちゃんと動かす、、
つまり、source activateした環境を認識させるには、、

例、下記の環境で、、

>conda env list
# conda environments:
#
py27                     C:\Anaconda3\envs\py27
py279                    C:\Anaconda3\envs\py279
root                  *  C:\Anaconda3

py279activateした場合、

>source activate py279

PYTHONPATHを指定しなおす必要あり。
どうも、source activateだけでは切り替わらない。。

py279 >export PYTHONPATH="/c/Anaconda3/envs/py279/Lib/site-packages"

あと、pipは、condaでインストールしないといけない。。

<Windows, dos> バッチファイルを管理者権限で実行する

バッチファイル.batを管理者権限administrator privilegeで実行する ショートカット作成とかあるようですが、タスクスケジューラを使う方法があるっす。
いけてました。

aquablue7.blogspot.jp

<Python> リスト中の重複した要素を除く、、

リストlist中の重複した要素duplicated elementを除く、、
setを使うそうです。

例、、

In [1]: l = ['e', 'd', 'c', 'a', 'b', 'e', 'd']

In [2]: set(l)
Out[2]: {'a', 'b', 'c', 'd', 'e'}

In [3]: list(set(l))
Out[3]: ['c', 'a', 'b', 'd', 'e']

In [4]: sorted(list(set(l)))
Out[4]: ['a', 'b', 'c', 'd', 'e']

In [5]: set?
Init signature: set(self, /, *args, **kwargs)
Docstring:     
set() -> new empty set object
set(iterable) -> new set object

Build an unordered collection of unique elements.
Type:           type

教えてもらいました。
www.lifewithpython.com