2020/08/11

pyenvでtkinterがないと言われて困った時の解決策

Djangoでmanage.pyしようとしたら,

ModuleNotFoundError: No module named '_tkinter'

と言われて困った.


解決策は下記のサイトの通り.

pyenvはパスを通さないといけないらしい.

 https://qiita.com/skyloken/items/a5f839eba1bd79cd5ef9


2020/07/23

IEICEのLaTeXフォーマットでフォントが無いと言われたときの解決策

IEICEの論文を書こうとLaTeXテンプレートをコンパイルしたら,何やらエラーが...

! Font TS1/ntxtlf/m/n/10=ts1-qtmr at 10.0pt not loadable: Metric (TFM) file not
 found.

普通に日本語を書くだけなら問題ないので,IEICE の LaTeXフォーマット固有の問題?
よくわからんが,ググったらこんな記事が出てきたので,そのとおりにしてみた.



tlmgr info ts1-qtmr.tfm

で探して,

tlmgr install tex-gyre

でインストールで解決.

tlmgr でインストールができない問題を探ったらcurlのproxyが原因だった件


tlmgr でスタイルファイルをインストールしようとしたら,長い時間待たされた挙げ句,以下のようなエラーが出て止まる.

sudo tlmgr install latexmk  --no-persistent-downloads

/Library/TeX/texbin/tlmgr: TLPDB::from_file could not initialize from: https://ftp.yz.yamagata-u.ac.jp/pub/CTAN/systems/texlive/tlnet/tlpkg/texlive.tlpdb
/Library/TeX/texbin/tlmgr: Maybe the repository setting should be changed.
/Library/TeX/texbin/tlmgr: More info: https://tug.org/texlive/acquire.html

多分proxyの問題だろうと思い,以前同じような問題で止まったとき同様,以下のサイトを参考にwgetのproxyの設定をするが,うまく行かず.
https://qiita.com/yyamnk/items/2da2791bcee82643984f

どうやらcurlで止まっているっぽかったので,curlのproxy設定をしたらうまく行った.
(というか,.zshrcにproxy設定を書き忘れてた)

.zshrc に以下を記入するだけ.
export http_proxy=http://example.com:8000
export https_proxy=http://example.com:8000

コマンド実行時は,環境変数の引き継ぎを忘れずに.
sudo -E tlmgr install latexmk


2020/05/27

TimeMachineで複数のMacのバックアップをしていて片方のMacが容量を食いすぎてしまった場合の対処法

タイトルの通り.

一つのTimeCapsuleにTimeMachineで複数のiMacとMacbookのバックアップを取っていたら,一方のiMacがどんどん空き容量にバックアップをためていき,たまにしか接続しないもう一方のMacbookは残された容量をほそぼそと使うという状態になっていた.
そしてとうとう,バックアップができない状態になってしまったので,渋々対応策を探す.



まず,

tmutil listbackups 

とかするとバックアップの履歴がリストされる.
そこから例えば,

sudo tmutil delete /Volumes/Time\ Machine\ バックアップ/Backups.backupdb/<マシン名>/2019-*

のような感じで,まとめて削除.

Total deleted: 470.0G

とか出て,空き容量が増えたかと思いきや,Macbook側から見ると空容量増えず.

hdiutil detach /Volumes/Time\ Machine\ バックアップ

した後に,

hdiutil compact /Volumes/<ディスク名>/<マシン名>.sparsebundle

で圧縮.
これで空き容量が開放される.

まぁ,本来ならパーティション分けるのが正しいんでしょうね.


参考にしたサイトはこちら.
基本的にはこのサイトでやっている通り.
https://qiita.com/takc923/items/52c4f7e4d260fc89a907

2020/04/29

Djangoで継承している子クラスのオブジェクトを親クラスのオブジェクトから見つける

タイトルの通り.

子クラスの名前がわかってる場合は,
parent_obj.child
でアクセス可能だけど,継承している子クラスが複数あって,どのクラスのオブジェクトに対応づいているか不明な場合は,工夫がいる.
related_objects から対応付くクラスの一覧を取得して,getattrでテキストで指定してアクセスすればOK.
こういう書き方をしておくと,子クラスを増やしたときに,書き換える必要がないから楽.

コードは以下の通り.

class Parent(models.Model):
    def get_child(self):
        """継承する子クラスのオブジェクトを返す"""
        children = self._meta.related_objects  # 継承している子クラス一覧を見つける
        for c in children:
            try:
                child = getattr(self, c.name)  # テキストで指定したselfのインスタンス変数にアクセス
            except getattr(ImageDatabase, c.name).RelatedObjectDoesNotExist:  # テキストで指定したクラス変数にアクセス
                pass  # 対応するオブジェクトがなければ何もしない
        return child

class Child(ImageDatabase):
    parent = models.OneToOneField(to= Parent, related_name='relation')


でも,もっとちゃんとした方法があるかも.
誰か知ってたら教えてほしい.

2020/03/11

lynxでno_proxy

lynx でプロキシの問題でページが表示できなくて困っていたが,どうやら no_proxy のワイルドカードが使えないということのようだ.

2020/02/06

pipでsslモジュールが使えないと言われた場合の対処法

何がきっかけかわからないが,あるとき突然pipができなくなってしまった.
エラーは以下の通りで,sslモジュールが使えないと言われる.

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

ググると,opensslを入れ直せと出てくるが,

brew update
brew upgrade
brew uninstall --ignore-dependencies openssl
brew install openssl

とかしてみてもだめ.
色々試行錯誤の結果,以下で行けたように見えた.

brew uninstall --ignore-dependencies openssl
brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

しかし,今度はsshができなくなる.
エラー内容はこんな感じ.
dyld: Library not loaded: /usr/local/opt/openssl@1.1/lib/libcrypto.1.1.dylib


最終的に以下で行けた.

brew switch openssl 1.0.2t