Docker内でのopencv buildでerror…
とあるDocker imageをbuildしようとしていたところ…
opencvのbuild中にerrorが
Dockerfileはこんな感じ…
FROM ubuntu:18.04 --中略-- # install & build opencv RUN git clone https://github.com/opencv/opencv.git ~/opencv RUN git clone https://github.com/opencv/opencv_contrib.git ~/opencv_contrib RUN cd ~/opencv && \ mkdir build && \ cd build && \ cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D INSTALL_C_EXAMPLES=OFF \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules ~/opencv \ -D BUILD_EXAMPLES=ON .. && \ make -j4 && \ make install && \ /sbin/ldconfig --以下略--
makeの部分でerrorが出た模様。
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
make[2]: *** [modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.o] Error 4
make[1]: *** [modules/python2/CMakeFiles/opencv_python2.dir/all] Error 2
CMakeFiles/Makefile2:19251: recipe for target 'modules/python2/CMakeFiles/opencv_python2.dir/all' failed
make[1]: *** Waiting for unfinished jobs....
error文で検索すると。
github.com
ちゃんと読んでないけどRAMが何たらかんたらと書いてある。
Linuxのサーバ上では同じDockerfileでbuildできていたのでおそらくPCの性能的な問題。
Macのスペック
OS: macOS Catalina 10.15.4
機種名: iMac(21.5-inch, 2019)
プロセッサ: 3.2 GHz 6Core Intel Core i7
メモリ: 16 GB 2667 MHz DDR4
グラフィックス: Radeon Pro 555X 2 GB
コア数は足りているはずなのにうまく行ってない。
ということで
make -j4 → make -j2
ちゃんとmakeできました。
まだしっかり調べていないですが、docker内でのcpu使用に制限があるのか…
またわかったら記事にします。
Geant4 cmakeでerror…(macOS)
Geant4のフレームワークをcmakeしようとしたところここでエラーが…
Failed to find "gl.h" in CMake Error at /usr/local/opt/qt/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:9 (message): Failed to find "gl.h" in "/System/Library/Frameworks/OpenGL.framework/Headers;/System/Library/Frameworks/AGL.framework/Headers". Call Stack (most recent call first): /usr/local/opt/qt/lib/cmake/Qt5Gui/Qt5GuiConfig.cmake:202 (include) /usr/local/Cellar/geant4/10.5.1/lib/Geant4-10.5.1/Geant4Config.cmake:449 (find_package) CMakeLists.txt:13 (find_package)
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenGL.framework/Headers /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AGL.framework/Headers
なんか場所が変わっていたらしい。
ちなみにGeant4はhomebrewを使ってインストールしたもの。
/usr/local/opt/qt/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake
このファイルを見に行くと
set(_GL_INCDIRS "/System/Library/Frameworks/OpenGL.framework/Headers" "/System/\ Library/Frameworks/AGL.framework/Headers")
ということでここを編集してみる
一応元のファイルは残して…
set(_GL_INCDIRS "/System/Library/Frameworks/OpenGL.framework/Headers" "/System/Library/Frameworks/AGL.framework/Headers" "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AGL.framework/Headers" "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenGL.framework/Headers")
このように編集
再度
cmake .. -- Configuring done -- Generating done -- Build files have been written to: /Users/hogehoge/
やったぜ。
Mac 理系大学生のための開発環境整備
Macの開発環境整備
「研究を始めたいけどどうやってツールを入れればいいかわからん!」
「ググっても専門用語と余計な知識が多すぎる!」
そんな初心者Macユーザーの皆さんにこの記事の使えるところを切り取って使っていただければ嬉しいです。
全体は長い記事ですが興味のないところは流し読み or Skipでお願いします。
(随時内容を追加・編集する予定)
- はじめに
- 筆者は何者?
- 筆者とMac
- Macの良いところ
- Macのイマイチなところ
- 基本セットアップ
- キーボード、マウス
- GUIアプリ
- ターミナル
- zshの導入
- Python
- ROOT, Geant4
- LaTeX編集環境
- その他
はじめに
新型コロナウィルスが猛威をふるい、大学生や社会人の方は自宅待機が推奨されています。
そんな中、テレワーク、遠隔講義などで自前のPCを使うが増えています。
使い始めたばかりのPCでセットアップもままならないまま研究、会社での仕事が始まっている方もいるではないでしょうか。
特に、理系の学部4年や大学院1年の方の中には
「よし!!先生や先輩から技を盗んで研究を始めるぞー!」
と考えていた矢先、大学が閉鎖されてしまったという人もいるかもしれません。
論文の英訳なら一人でも始められますが、研究に関して必要なツールや開発環境を自分一人で揃えるのは難しい。
普通研究室の先輩の環境をコピーして徐々に理解し、自分のアレンジを加えていくと言うのが一般的です。(私もそうでした)
そこで「意味は全然わからないけど、とりあえず研究に必要そうな物を揃えたい!」
と言う人々を応援するために私のMac Catalinaでの開発環境整備をまとめて公開したいと思います。
筆者は何者?
物理学を研究している大学院生(博士課程)です。今はとある研究所にいます。
専門分野は原子核物理実験です。いろいろなことに興味があります。(知識は浅く広く)
研究のデータ解析のためにプログラミングを少々。主な使用言語はPython。
筆者とMac
Mac遍歴
- 親がMacユーザーだったこともあり大学入学時に買ってもらったラップトップがMacbook Air(2015)でした。
- 学部3年までは特に使いこなしていたわけではなく、見た目がかっこいいので気に入って使っていました。
- 研究室に所属し研究を始めるにあたり、博士課程に進学していた先輩がMacを使いこなして解析しているのに憧れ、見様見真似(設定のコピーアンドペースト)で解析ツールを使い始めます。
- RAMメモリが4GBしかなかったAirの性能に限界を感じ、大学院1年の時にMacbook Pro(2017)を購入し現在もメインで使っています。
- 研究費でiMac(2019)を購入してもらえたのでセットアップするついでに皆さんと情報を共有しようと思いブログを始めました。
Macの良いところ
- かっこいい!! 以上!
- 開発環境が楽に準備できる。(今回のメインテーマ)
- 使っている人がそこそこ多いのでネットにも情報が豊富。
- UIが鮮麗されており、人間が直感的に操作できるためストレスなく仕事ができる。(慣れの問題かも…)
- Apple機器との連携が優れている。
- かっこいい。それだけで使う価値がある。
Macのイマイチなところ
しかし物理の解析で用いられるツールがほぼ動き、サーバーに用いられるLinuxとも共通点が多いことから素粒子原子核物理解析を行う大学生のみなさんにおすすめです。
中途半端なPC買うと買い替えが必要になって余計に金がかかるし…
↓ここからが本編です↓
基本セットアップ
今回開発環境を整備したMacのスペック
OS: macOS Catalina 10.15.4
機種名: iMac(21.5-inch, 2019)
プロセッサ: 3.2 GHz 6Core Intel Core i7
メモリ: 16 GB 2667 MHz DDR4
グラフィックス: Radeon Pro 555X 2 GB
キーボード、マウス
プログラムの編集だけでなくメールやレポート作成の際、文字を素早く入力したり連続で消したり、矢印キーで目的の箇所へ素早く移動したいですよね。
まず、キーボードとマウスのレスポンスをあげましょう。こちらのシステム環境設定からキーボードを選択。
赤矢印の方向にカーソルを動かします。
ちなみに、ターミナル上でコマンドを入力することでさらに速度を早くできます。
#今の値がわかる。 defaults read -g InitialKeyRepeat defaults read -g KeyRepeat
#さらに速く defaults write -g InitialKeyRepeat -int 10 defaults write -g KeyRepeat -int 1
GUIアプリ
とりあえずブラウザはGoogle Chrome
www.google.com
ブラウザはなんでもいい。自分が慣れている物を使いましょう。
僕はスマホでSafari、仕事のPCではChromeと使い分けています。
(履歴がry…)
テキストエディタとしてVSCode。
code.visualstudio.com
私はターミナル上でテキストやスクリプトを編集する際はemacsを使っていますが、
大掛かりなプロジェクトや人が書いたコードを解析するときにはVSCodeを使っています。
現在最も開発が盛んなテキストエディターで、新機能がどんどん追加されています
一部を除きほとんどの機能がWindows, Mac, Linuxで共通なのが嬉しいですね。
拡張機能が多すぎて追いつけていないので勉強中です。
インストールしたら⌘ + Shift + Pでコマンドパレットを開いて>codeと入力。これでターミナルからもvscodeを起動できるようになります。
code {ファイル名}
ターミナル
ここからが研究用の開発環境整備です。
まずこの開発環境整備の軸を担うHomebrewというパッケージ管理機能をインストールします。
この機能だけでもMacを選ぶ価値があると考えています。
Homebrewとは登録されている開発研究用のパッケージをその機能を使うために必要な周辺環境も含めてインストールしてくれる非常に便利な機能です。
例えば「ROOTというパッケージを使ってデータ解析がしたい!」
と思った場合、通常であればROOTを使うために必要な様々な依存パッケージをインストールし、それらを自分でセットアップする必要があります。
Homebrewはそれらを自動で検知し、依存関係にあるパッケージを自動でインストールし、使える状態にしてくれます。
初心者でもネットからコマンドをコピーして貼り付けるだけで狙ったツールが使えるようになります。
ターミナルを開き以下のコマンドを入力します。
xcode-select --install
インストールをクリックし、xcodeとコマンドツールとやらを手に入れる(くそ時間がかかる)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" ==> This script will install: /usr/local/bin/brew /usr/local/share/doc/homebrew /usr/local/share/man/man1/brew.1 /usr/local/share/zsh/site-functions/_brew /usr/local/etc/bash_completion.d/brew /usr/local/Homebrew ==> The following new directories will be created: /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Homebrew /usr/local/Frameworks ==> The Xcode Command Line Tools will be installed. Press RETURN to continue or any other key to abort Password: #PCのパスワードを入力
すると自動的にコマンドラインツールのインストールが始まります。
インストールが終わったら以下のコマンドを
brew doctor Your system is ready to brew.
ビールが飲みたくなりますね。
次にこちら
brew install cask
通常、homebrewはコマンドラインツール(ターミナル上で動くアプリケーション)を中心に扱いますがcaskをinstallすることでchromeやこの後紹介するiTremなどのGUIアプリケーションもインストールできるようになります。
brew search iterm2
このコマンドでインストール可能なパッケージがあるか教えてくれます。
brew cask install iterm2
インストールが終わったらデフォルトのターミナルとはおさらばです。
Catalinaからデフォルトのshellがzshになりましたがbrewでインストールしたzshを使います。
(意味はないけれど)
brew install zsh
zshの導入
brew install zsh
sudo emacs /etc/shells
で中身を編集。
最後の行に/usr/local/bin/zshを加える
#デフォルトのshellをインストールしたzshにする。 chsh -s /usr/local/bin/zsh
homeに.zshrcを作り以下の内容をコピペ。
emacs .zshrc
(.が先頭につくファイルは隠しファイル)
この設定ファイルを読み込むとzshがめちゃくちゃ便利に使えます。
履歴の呼び出しやコマンドの補完、大文字小文字の自動認識など…
作者の方には頭が上がりません。
shellの見た目をよくする
tmuxの導入
brew install tmux
なんかかっこいいから入れてる。
itermを再起動
するとこんな文章が
zsh compinit: insecure directories, run compaudit for list. Ignore insecure directories and continue [y] or abort compinit [n]?
なんか出てくるので調べてみると
どうやら権限の問題で警告が出ているらしい
compaudit /usr/local/share/zsh/site-functions /usr/local/share/zsh
どうやらこの二つのファイルが問題らしいので以下のコマンドを実行(権限を変更)
chmod 755 /usr/local/share/zsh/site-functions chmod 755 /usr/local/share/zsh
tmuxの拡張機能
ここにあるファイルを展開して
home dirの .tmux/の下にコピー
mkdir .tmux cd .tmux/
設定ファイル.tmux.confにこれをコピー
set -g @plugin 'tmux-plugins/tmux-battery' set -g @plugin 'tmux-plugins/tmux-online-status' set -g @plugin 'tmux-plugins/tmux-cpu' # tmuxを256色表示できるようにする set-option -g default-terminal screen-256color set -g terminal-overrides 'xterm:colors=256' # prefixキーをC-tに変更 set -g prefix C-t # C-bのキーバインドを解除 unbind C-b # ステータスバーをトップに配置する set-option -g status-position top # window-status を中央揃えで配置する set-window-option -g status-justify "centre" # #P => ペイン番号 # status-left の最大の長さを指定する。 set-option -g status-left-length 30 # 最左に表示 set-option -g status-left '#H:[#P]' # status-right の最大の長さを指定する。 set-option -g status-right-length 100 # Wi-Fi、バッテリー残量、現在時刻 #set-option -g status-right '#(battery) #(getwifi.sh) %m/%d %H:%M:%S#[default]' set -g status-right "Batt: #{battery_icon} #{battery_percentage} #{battery_remain} | Online: #(getwifi.sh) | CPU: #{cpu_icon} #{cpu_percentage} | %m/%d %H:%M:%S#[default] " # status line の文字色を指定する。 set-option -g status-fg "colour255" # status line を更新する間隔を 1 秒にする set-option -g status-interval 1 # status line の背景色を指定する。 set-option -g status-bg "colour238" # status line の文字色を指定する。 set-option -g status-fg "colour255" # window-status のフォーマットを指定する。 set-window-option -g window-status-format " #I: #W " # カレントウィンドウの window-status のフォーマットを指定する set-window-option -g window-status-current-format "#[fg=colour255,bg=colour27,bold] #I: #W #[default]" # | でペインを縦分割する bind | split-window -h # - でペインを縦分割する bind - split-window -v # 番号基準値を変更 set-option -g base-index 1 # マウス操作を有効にする set-option -g mouse on bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'" set-option -g default-command "reattach-to-user-namespace -l zsh" #### # コピーモードを設定する #Setup 'C-@' to begin selection as in Emacs bind-key -T copy-mode C-@ send -X begin-selection bind-key -T copy-mode C-w send -X copy-pipe "reattach-to-user-namespace pbcopy" bind-key -T copy-mode C-c send -X cancel # Update default binding of `Enter` to also use copy-pipe #unbind -T copy-mode Enter #bind-key -T copy-mode Enter send -X copy-pipe "reattach-to-user-namespace pbcopy" ###
run '~/.tmux/plugins/tpm/tpm' brew install reattach-to-user-namespace tmux source-file ~/.tmux.conf
おまけに筆者のiTerm2の設定を写真で載せておきます。
完成
Python
brew install python3 % python3 Python 3.7.3 (default, Mar 6 2020, 22:34:30) [Clang 11.0.3 (clang-1103.0.32.29)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>
これが出ればオーケイ
以降は
pip3 install {パッケージ名} でパッケージをinstallできる。研究室や開発内容で必要なパッケージが異なるので確認をお願いします。 とりあえずpip3 自体をアップデート >|| pip3 install --upgrade pip Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: 'RECORD' Consider using the `--user` option or check the permissions.
なんか怒られたの。
末尾に--userをつけると良いらしい。
pip3 install --upgrade pip --user
今後使うパッケージもpip3でinstall。
pip"3"をつけ忘れるとpythonの2系用のパッケージをインストールしてしまうので注意しましょう。
ROOT, Geant4
素粒子原子核物理の解析パッケージとしてスタンダードとなっているROOT。
粒子のシミュレーションツールとして有名なGeant4。
調べるといろんなインストール方法が出てきます。
これらは使い方を覚えるのが大変なのでインストールの段階でつまずくとやる気がなくなります。
Homebrewを使って楽をしましょう。
brew install root6 brew install geant4
ホームディレクトリに作成済みの.zshrcのどこかに
以下の内容を記載する。
. /usr/local/Cellar/root/6.20.02_1/bin/thisroot.sh #数字はインストールされたversionに従って変更。 cd /usr/local/Cellar/geant4/10.5.1/bin #数字はインストールされたversionに従って変更。 source ./geant4.sh cd - > /dev/null
versionによって数字が変わりますがbrewによってインストールされる場所は同じです。
ROOTが動くか確認。
% \root ------------------------------------------------------------------ | Welcome to ROOT 6.20/02 https://root.cern | | (c) 1995-2020, The ROOT Team; conception: R. Brun, F. Rademakers | | Built for macosx64 on Mar 15 2020, 15:25:34 | | From tags/v6-20-02@v6-20-02 | | Try '.help', '.demo', '.license', '.credits', '.quit'/'.q' | ------------------------------------------------------------------ root [0]
Geant4についてはいつか解説したいです。(筆者が使いこなせるようになったら)
その他
apps.apple.comめっちゃくちゃ重たいけどとりあえず入れている。
ないと怒られる時があるので。
office365
https://apps.apple.com/jp/app-bundle/microsoft-365/id1450038993?l=en&mt=12&at=10l8JW&ct=hatenablogapps.apple.com
Macのpagesyakeynoteでも仕事はできるけれど
仕事での資料作成等で必ずmicrosoftのofficeを使うことが要求されつので諦めて買う。
職場や学校が法人契約してくれているとありがたいですね。
Clipy クリップボードの履歴を増やす
clipy-app.com
qiita.com
Auto desk Fusion360
www.autodesk.co.jp
3D cadアプリケーション
教育目的のライセンスなら無料でのライセンスなら無料で使える。操作に慣れればかなり便利。
2次元図面を作るのはちょっと難しい。
XQuartz
ssh先の画像やグラフを表示したりする奴。
問題が発生したのでこちらを参照願います。
salt22g.hatenablog.jp
pytorch, Docker…proxy環境下でのfile download
最近、Linuxサーバーにsshで接続し、その中でDockerを走らせてpytorchを使っている筆者です。
(何を言ってるのか分からねぇと思うが…)
proxy環境下での開発環境整備やDocker imageの作成で苦戦したのですが徐々に理解が進んでいます。
その辺りはいずれ記事にしたいと思っています。
pytorchのパラメータファイル自動ダウンロード…
今流行りの機械学習。
pythonを使ったフレームワークの中の一つにpytorchがあります。
研究室で導入しているので「私も勉強しなくては!」と思い、公式サイトのtutorialをやってみました。
最近の機械学習のフレームワークはめちゃくちゃ賢い。
目的にあった学習済みのパラメータファイルをネットからダウンロードして使えるようになっています。
しかし、proxy環境で動くDockerの中でダウンロードが動かず
以下に詳細と解決策を。
環境
NAME="Ubuntu"
VERSION="16.04.6 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.6 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
Docker image: nvcr.io/nvidia/pytorch:19.08-py3
以下のサイトからgit cloneしたやつです。
github.com
proxy環境
salt22g.hatenablog.jp
この記事にある設定を使っています。
proxy環境下のDockerの中でもwget等は問題なく使えています。
問題発生
transfer_learning_tutorial.pyという手法を試してみました。
pytorchによる画像分類のtutorialです。
github.com
model_ft = models.resnet18(pretrained=True)
この行で学習済みファイルを読みに行きます。
今回のコードでは
Downloading: "https://download.pytorch.org/models/resnet18-5c106cde.pth" to /root/.cache/torch/checkpoints/resnet18-5c106cde.pth
が実行されますがerrorが…
Traceback (most recent call last): File "/opt/conda/lib/python3.6/urllib/request.py", line 1318, in do_open encode_chunked=req.has_header('Transfer-encoding')) File "/opt/conda/lib/python3.6/http/client.py", line 1254, in request self._send_request(method, url, body, headers, encode_chunked) File "/opt/conda/lib/python3.6/http/client.py", line 1300, in _send_request self.endheaders(body, encode_chunked=encode_chunked) File "/opt/conda/lib/python3.6/http/client.py", line 1249, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) File "/opt/conda/lib/python3.6/http/client.py", line 1036, in _send_output self.send(msg) File "/opt/conda/lib/python3.6/http/client.py", line 974, in send self.connect() File "/opt/conda/lib/python3.6/http/client.py", line 1407, in connect super().connect() File "/opt/conda/lib/python3.6/http/client.py", line 946, in connect (self.host,self.port), self.timeout, self.source_address) File "/opt/conda/lib/python3.6/socket.py", line 704, in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): File "/opt/conda/lib/python3.6/socket.py", line 745, in getaddrinfo for res in _socket.getaddrinfo(host, port, family, type, proto, flags): socket.gaierror: [Errno -3] Temporary failure in name resolution During handling of the above exception, another exception occurred: Traceback (most recent call last): File "transfer_learning_tutorial_org.py", line 254, in <module> model_ft = models.resnet18(pretrained=True) File "/opt/conda/lib/python3.6/site-packages/torchvision/models/resnet.py", line 231, in resnet18 **kwargs) File "/opt/conda/lib/python3.6/site-packages/torchvision/models/resnet.py", line 217, in _resnet progress=progress) File "/opt/conda/lib/python3.6/site-packages/torch/hub.py", line 457, in load_state_dict_from_url _download_url_to_file(url, cached_file, hash_prefix, progress=progress) File "/opt/conda/lib/python3.6/site-packages/torch/hub.py", line 372, in _download_url_to_file u = urlopen(url) File "/opt/conda/lib/python3.6/urllib/request.py", line 223, in urlopen return opener.open(url, data, timeout) File "/opt/conda/lib/python3.6/urllib/request.py", line 526, in open response = self._open(req, data) File "/opt/conda/lib/python3.6/urllib/request.py", line 544, in _open '_open', req) File "/opt/conda/lib/python3.6/urllib/request.py", line 504, in _call_chain result = func(*args) File "/opt/conda/lib/python3.6/urllib/request.py", line 1361, in https_open context=self._context, check_hostname=self._check_hostname) File "/opt/conda/lib/python3.6/urllib/request.py", line 1320, in do_open raise URLError(err) urllib.error.URLError: <urlopen error [Errno -3] Temporary failure in name resolution>
解決法
どうやらpythonのrequest.pyとやらがproxyの設定を読み込めていない模様。
こちらの記事によると環境変数を設定すれば良いとのこと。
export HTTP_PROXY="http://${USERNAME}:${PASSWORD}@${PROXY_HOST}:${PROXY_PORT}"
筆者もこの設定したはずなんだけど動かない。
そこでもう一つの解決法を試しました。
pythonのプログラムにこちらを追加。
import os os.environ["http_proxy"] = "http://user:pass@server:port" os.environ["https_proxy"] = "http://user:pass@server:port"
すると問題なくダウンロードが行われ学習が開始されました。
各ドライブからのwgetによるファイルのダウンロードの方法
最近Linuxサーバー上で仕事することが増えたため備忘録として残します。
随時加筆予定
環境
Ubuntu 18.04(Docker)
下準備
プロキシ環境下なので
こちらの記事を参考に~/.wgetrcを作成し以下を記入
http_proxy=http://${xxx.xxx.xxx.xxx}:${pp}/ https_proxy=http://${xxx.xxx.xxx.xxx}:${ss}/
ppはhttpのポート番号、
ssはhttpsのポート番号である。
これを設定していないと
wget -e "http_proxy=${xxx.xxx.xxx.xxx}:${pp}/" 〜〜
を毎回打ち込むことになります。
Google drive
Google driveのブラウザ上でファイルを右クリック。
共有可能なリンクを取得を押すとクリップボードにリンクがコピーされます。
https://drive.google.com/open?id=〇〇〇〇〇〇
〇〇〇〇〇〇をコピーして
wget --no-check-certificate "https://drive.google.com/uc?export=download&id=〇〇〇〇〇〇" -O 保存名
-
- no-check-certificateをつけておくとデカいファイルでもセキュリティチェックなしで行けるようです。
qiita.com
こちらの用にエイリアスを組むのも賢いですね。
~/.zsh_aliasesに以下を記載
function gdrive_download () { CONFIRM=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate "https://docs.google.com/uc?export=download&id=$1" -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p') wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$CONFIRM&id=$1" -O $2 rm -rf /tmp/cookies.txt }
ターミナルでこちらを読み込む
source .zsh_aliases
以降は
gdrive_download 〇〇〇〇〇〇 保存名
で使える。
macでXQuartzを入れたらemacsが死んだ件
結論から言うとemacsを再インストールしたら直りました。
「SSH先の画像を表示したいのでXQuartz入れよー。」
www.xquartz.org
と言うことでいつも通りhomebrewにお願いした。
brew cask install xqurtz
なんかimagemagickとやらがいるらしいのでこいつもinstall
brew install imagemagick
PCを再起動したところ問題が発生
emacs hogehoge dyld: Library not loaded: /usr/local/opt/libffi/lib/libffi.6.dylib Referenced from: /usr/local/opt/p11-kit/lib/libp11-kit.0.dylib Reason: image not found
なんでや!!!!emacs関係ないやろ!!
error文で検索すると
github.com
この指示通りlibffiを再インストールしてみる。
brew reinstall libffi
しかし効果なし。
blue1st-tech.hateblo.jp
このブログによると「シンボリックリンクを更新せい」とのこと
ln -s /usr/local/opt/libffi/lib/libffi.dylib /usr/local/opt/libffi/lib/libffi.7.dylib
しかし効果なし。
結局、「emacsが動かねえ」と言う情報を加えるとここにヒット。
stackoverflow.com
brew reinstall emacs ==> Reinstalling emacs ==> Installing dependencies for emacs: p11-kit ==> Installing emacs dependency: p11-kit "以下略"
動くようになった。
おそらくp11-kitが悪さしてたんでしょう。
いつもemacsばっかり使ってるのでいざと言う時のためにvimも最低限使えるようにしないとな…
Homebrewはめちゃくちゃ便利なんだけどたまに依存関係が死んで他のところが動かなくなったりするので注意が必要ですね。
ではまた!!。
参考