【まず1嫁】くだすれPython(超初心者用) その54

■ このスレッドは過去ログ倉庫に格納されています
2021/06/09(水) 21:05:44.61ID:zRBfpo4e
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。
「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。

★エラーを解決したい場合★は、
  表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。

Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★
【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、
プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Python公式◇ http://www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi

〇前スレ〇 【まず1嫁】くだすれPython(超初心者用) その53
https://mevius.5ch.net/test/read.cgi/tech/1615846784/

次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###
2021/08/21(土) 16:06:33.06ID:Bsv/eHVD
np.mean(np.array(lista))とか?
2021/08/21(土) 16:23:11.06ID:2TaMM1xI
np.mean(lista) でも np.array(lista).mean() でもいける
2021/08/21(土) 21:43:33.30ID:/rey9CMo
以下のような辞書があって
dict_a = {"a":1.0, "b": 0.5, "c": 0.25, "d": 0.68}

以下のようなlist_aがあって
list_a = ["a", "a", "a", "b", "c", "c", "d"]

dict_aとlist_aから、以下のようなlist_bを作るにはどうするのが良いですか?
list_b = [1.0, 1.0, 1.0, 0.5, 0.25, 0.25, 0.68]

以下のようにfor文を回して地道にやるしかないですか?
list_b = []
for a in list_a:
  if a in dict_a:
    list_b.append(dict_a[a])

ちなみにnumpyは使えない環境です。
2021/08/21(土) 21:44:48.81ID:/rey9CMo
>>648 なるべく処理速度を高めたいです。
650デフォルトの名無しさん
垢版 |
2021/08/21(土) 23:19:07.08ID:7GAoG1Iq
Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています

Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます

Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ

なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?

Nimの実験的特徴
著者: アンドレアス・ルンプ
バージョン: 1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html


Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる

「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
2021/08/21(土) 23:23:12.53ID:0b1Dm8dh
mapする時はPythonでは普通list comprehensionを使う
list_b = [ dict_a[x] for x in list_a if x in dict_a ]
652デフォルトの名無しさん
垢版 |
2021/08/22(日) 05:09:08.36ID:DeeCp+C0
linuxでpython動かしたことないのですが
linuxで開発中のpythonコード上でwindowsAPIを実行できますか?
書くだけ書いてwindowsに持ってって実行する感じですか?
653デフォルトの名無しさん
垢版 |
2021/08/22(日) 13:57:54.68ID:cx6/dnxW
WSLのことならOK
2021/08/22(日) 19:37:21.71ID:RWC7FQin
flaskで
def main():
_from flask import Flask
_app = Flask(__name__)
_aaa=10
_bbb=20
_@app.route("/")
_def test():
__print(locals())
_return app
的な感じで書くと、なぜかlocals()でaaaが取得されるんですがバグでしょうか?
655デフォルトの名無しさん
垢版 |
2021/08/23(月) 16:02:00.39ID:Gra2NqP5
型ヒントで
strのlistかNoneが返ることを書きたい

def test(obj: Any) ->Optional[list[str]]
かなと思ったらエラーが…
656デフォルトの名無しさん
垢版 |
2021/08/23(月) 16:05:38.99ID:Gra2NqP5
あ失礼
typing Listがあんのね
2021/08/23(月) 19:42:57.46ID:lyXFy7/6
DataFrameをto_csvでcsv出力すると、CSVの一番左上に入るはずのカラム名(columns.name)が0になってしまいます。
出力するための引数などあるのでしょうか?
658デフォルトの名無しさん
垢版 |
2021/08/23(月) 22:29:26.85ID:NbJ+wt2i
>>655
3.9からはそれでOK
2021/08/24(火) 01:53:49.06ID:OPjw/0cg
>>657ですが、説明が正しくありませんでした
csvをDataFrameに読み込む際、header=Noneにするとヘッダには0からの連番が振られると思います。
このデータフレームのヘッダに対してdf.columns=listで別の名前を割り当て、to_csvで出力しました。
ですが、0のヘッダ名が変わってくれません。
1以上の連番が振られていたところは新しい名前に変わっていました。
何か対策などあれば教えていただきたいです。
2021/08/24(火) 03:40:53.95ID:mZOju8SR
>>659
実際のデータ見てないから想像で申し訳ないけど
0のヘッダ名になってる所ってインデックスになってない?
インデックスはカラムとは別にタイトルを付ける必要がある
df = pd.DataFrame(data)
df.index.name = 'Date
みたいな感じで'
661デフォルトの名無しさん
垢版 |
2021/08/24(火) 20:22:12.69ID:el4vEdwg
windows10の話なんですが
属性確認すると
program files はreadonlyだけど
program files(x86)はreadonlyでないと言われます
どちらも同じ属性じゃないとおかしい気がするんですが、なぜ異なるのですか?
662デフォルトの名無しさん
垢版 |
2021/08/24(火) 20:29:09.46ID:el4vEdwg
なんでここで聞いたかというと
pythonのstat.st_file_attributes使ってるからです
もしかしたらアクセス方法間違ってるとか
別言語では上手くいくとかあり得るのかなと思って。
2021/08/24(火) 22:04:24.96ID:SMXHl8SK
Ruby で、フォルダのモードを取得したら、どちらも40555 だった

file_paths = [ "C:/Program Files", "C:/Program Files (x86)" ]

file_paths.each do |file_path|
fs = File::Stat.new( file_path )
printf "%o\n", fs.mode
end

出力
40555
40555
2021/08/24(火) 23:08:06.06ID:OPjw/0cg
>>660
ありがとう!!
ご指摘の通りインデックス名が出力されてました
df.index.nameにカラム名と同じ名前をつけて解決しました
to_csvではカラム名は出力出来ないんですかね?
本当にありがとうございました!
2021/08/24(火) 23:59:28.05ID:SMXHl8SK
例えば、Ruby では、先頭にヘッダー行を追加できる

require 'csv'

input_csv = <<"EOT"
1,白石
2,西野
EOT

ary = CSV.parse( input_csv ) # 2次元配列
ary.unshift [ "ID", "名前" ] # 先頭に、ヘッダー行を挿入する

p ary #=> [["ID", "名前"], ["1", "白石"], ["2", "西野"]]

# 2次元配列を、CSV 文字列に変換する
csv_str = ary.map( &:to_csv ).join
puts csv_str

出力
ID,名前
1,白石
2,西野
2021/08/25(水) 01:10:46.53ID:xyhN2k85
ruby関係ないし
667デフォルトの名無しさん
垢版 |
2021/08/25(水) 09:24:28.96ID:U8ZXR+0V
>>664
マニュアル嫁
2021/08/26(木) 00:21:00.63ID:PW4YFNBs
もしかしてプログラムでわからないことがあったときって公式のマニュアルを見るのが普通なんですか??
今まで誰かが日本語で説明しているのをググって探してました
公式は英語の直訳で分かりにくくて苦手です
2021/08/26(木) 00:27:55.26ID:XerHugu7
>>668
英語の直訳が読みにくければ英語の原文を読めばいいよ
2021/08/26(木) 00:37:28.11ID:HdMtKHya
公式リファレンス読まないのはギルティ
読みやすいか、分かりやすいかは別だが
671デフォルトの名無しさん
垢版 |
2021/08/26(木) 00:49:51.62ID:zNekFy4I
別にググって探すのは悪くないよ。ただ、実際の動作の裏付けには公式のドキュメントの役割が大きい
だから、ググった上で公式のドキュメントも見るような感じがいいと思う

Pythonのドキュメントは原文も同じ書き方してるから和訳呼んでもわからなかったら原文読んでもわからんと思う
翻訳の問題じゃないから、>>668自信の技術力が足りてないか、原文自体の記述が悪いかみたいな話になるけど
672デフォルトの名無しさん
垢版 |
2021/08/26(木) 00:54:04.47ID:zNekFy4I
Pythonに限らず公式のドキュメントを読み慣れるのは大事だと思う
ドキュメントの構成だったり原文と翻訳の時差とか色々癖あるし
2021/08/26(木) 01:14:15.79ID:wylnrun/
なんだかんだで公式が一番詳しかったりするからな
フォーラムを巡ってもわからなかった問題が公式ドキュメントであっさり解決して、こんなことなら最初に読んでおけばと後悔したことが何度もある
2021/08/26(木) 01:36:05.61ID:2U1NMhFu
>>668
ドキュメントの書き方はどこの言語でもクセがあるから慣れだな
公式ドキュメントを読むクセ付けないとバージョンによっては挙動が違ったりするから
他の人の奴を参考にしてると稀に挙動が違ってて余計にハマったりする

一番信用できるドキュメントは公式、っていうのだけは念頭に置いておいて欲しい
2021/08/26(木) 09:31:05.38ID:ANYTQNnK
公式ドキュメントは専門用語をちゃんと使って
正確に書いてるから、そうとうわかってないと
意味不明だろうな
2021/08/26(木) 09:48:18.62ID:PKQtsNYj
一概にそういうわけでもなくて、文化だったり書いた人の性格や能力に依存するところが大きい
Pythonの公式ドキュメントは上から目線で不親切だと思うよ
Rustなんて遥かに難しくてユーザーのレベルも高いはずだけど、ドキュメントはPythonよりは分かりやすい
2021/08/26(木) 10:04:09.61ID:FZTkV2My
そうとうわかってないと意味不明な公式ドキュメント・・・
存在する意味がないな
2021/08/26(木) 10:44:16.68ID:k5gORvl5
攻略本は読みたくなるけど取扱説明書は読む気がしない
2021/08/26(木) 11:24:47.52ID:kArR7Ozy
操作方法が分からないのに攻略本しか読まないアホ
2021/08/26(木) 16:37:58.78ID:WPRv8+9f
>>671
技術力というより知能が足りない
2021/08/26(木) 17:00:14.47ID:5BXow/+L
>>680
csv読むときにどうやってインデックス名の付ければいいかわっかるかなぁ?
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html

はたして君は知能が足りてるのか?
2021/08/26(木) 21:09:48.95ID:dja60KXS
>>677
専門家が度忘れしたときや念のために確認するときに役立つ
2021/08/27(金) 07:26:29.75ID:a7GWOZA3
ここのreferenceはまだ全然見やすい方
Java関係の公式とか酷かった
あと世の中の大半のフレームワークの公式は分かりにくいし雑だな
むしろ公式さえしっかりしてればフレームワーク自体は雑でもいいぐらい公式は重要なのに
フレームワークのフレームワークが公式なんだから
2021/08/27(金) 13:44:12.82ID:lxI1gnNr
Javaのoracle公式は内部で探しにくい
記述はちゃんとしていると思うが
2021/08/27(金) 14:35:37.85ID:FpTGA0p8
API一覧はどっかに載せといて欲しいんだよなあ
BeautifulSoupみたいなドキュメント大嫌い
2021/08/28(土) 15:20:25.04ID:1FNDrQ4q
androidスマホでクローリングとかスクレイピングとかPythonでやりやすいですか?

あるいは他に楽な方法あったら教えてください(プログラミング言語でなくとも)
687デフォルトの名無しさん
垢版 |
2021/08/28(土) 20:01:10.55ID:XJOj+thk
blenderでpython つかってるんですけど

10から-10の範囲で動く変数 var があって
その数値に応じてもう一つの変数 var2 を0から0.2の数値に変化させたいんですが
たとえばこう記述すると

if var >= 0:
var2 = 0.2
else:
var2 = 0

varがプラスになった途端にいきなりvar2の数字が0.2になっちゃうじゃないですか
なのでvar2を徐々に0.2にまで増やしていきたいんですが、なにかいい数式とかないですかね
変数varは一応10から-10の範囲を動くとはしていますが、場合によっては数値がまったく違ってくるので
varを条件式で使う場合の条件はvarが0以上の数値をもっているかいないかくらいしかないです
なのでvar2と他のなにかをつかって数値を調整するしか無いんですが
2021/08/28(土) 21:56:09.25ID:KCQB2Q+0
var2 = (var+10) / 100

これでどや!
2021/08/28(土) 23:04:51.28ID:o0C8VYNv
var2=(10-var)/100
じゃね?
2021/08/28(土) 23:10:19.97ID:Syg1tfaV
> 10から-10の範囲で動く変数 var があって
っと書いてあるのに
> varがプラスになった途端
とか意味わからんので俺は傍観中
2021/08/29(日) 00:00:15.10ID:f3cdDfKi
単純にリニアに対応させるのはよくやるしありそうだけど
残念ながら標準ライブラリにはない
python MinMax scaling
でググるといろいろでてくる
2021/08/29(日) 00:40:53.81ID:a8dnpsvI
変数名にvarとかletとか意味わからなくなるからやめろ
2021/08/29(日) 00:41:59.01ID:kSqJuAzn
じゃあhogeにします
2021/08/29(日) 00:44:34.75ID:a8dnpsvI
hogeとfugaも見ただけで思考が停止する
2021/08/29(日) 00:57:44.19ID:kSqJuAzn
bar bazならOKだね
696デフォルトの名無しさん
垢版 |
2021/08/29(日) 01:24:41.28ID:TPHdi4yb
わざとなのか知らんが
0->10
0.2->-10
なのか
0->-10
0.2->10
なのかはっきりしないな
圧倒的に知能の欠落を感じる
2021/08/29(日) 02:51:56.56ID:8LB32Hf6
そんな事いちいち書かなくても文章見れば分かるじゃない
ガイジなのは一目瞭然
2021/08/29(日) 07:38:58.20ID:H3IeLoxc
windows環境のpythonで追加モジュールインストールなしでシステム音量を変える方法はありますか
スクリプトを流し終わったらミュート解除して音を流してミュートにする的なことをやりたいです
winapi触るようなイメージなんですが
2021/08/29(日) 10:34:36.66ID:dJJJwYZf
windows 10、Python 3.9.1 の環境です
https://i.imgur.com/27ebmLL.jpeg

インポートの仕様についてですが、以下のファイルがあります
/run.py
/modules/a1.py
/modules/a2.py

runはa1を読み込んでいて、a1とa2はお互いに依存しているのでお互いをimportしています。
ここでrun.py を実行すると以下のエラーが表示されます。

Traceback (most recent call last):
File "C:\run.py", line 2, in <module>
from modules.a1 import A1C
File "C:\modules\a1.py", line 2, in <module>
from modules.a2 import A2C
File "C:\modules\a2.py", line 2, in <module>
from modules.a1 import A1C
ImportError: cannot import name 'A1C' from partially initialized module 'modules.a1' (most likely due to a circular import) (C:\modules\a1.py)

エラーの内容はrun→a1→a2→a1 と、インポートが循環しているからというのはわかるのですが、pythonの文法として 循環インポートはコード書く側が注意しないといけないものなのでしょうか
これ以上ファイルを増やしたくないのですが、 __init__.py というものを使う必要があるのでしょうか。
2021/08/29(日) 10:38:21.86ID:SOFRyS0H
>>699
普通はお互いに依存してる部分を切り出して共通クラスを作るぞ
2021/08/29(日) 11:42:47.82ID:6aPcdB/x
>>688>>689
アニメーションさせるオブジェクトの設定を見直していたら数値が変わってしまってvar2は0から1、varが取得する数値が-100から100くらいになってしまったので
最初にあげた数値とは違っていますけど参考にして書き直しました

(10+var)/400 if var >= 0 else (10-var)/400

varが0近辺になるときに返す値を0から1の範囲でうまい具合に動かしたかったんですがこれでなんとかなりました
どうもでした
2021/08/29(日) 12:50:56.45ID:Y4MENvlF
>>699
インポートが実行されるタイミングで循環が発生しないようにすればいい
その例だと「A1Cをimport -> そのためにはA2Cが必要 -> そのためにはA1Cが必要」で循環してる
例えばa2.pyのほうをimport modules.a1 as A1とかにすればインポート実行時には循環しない

設計を変更するのが一番だけど
何か特別な事情があるならインポートを遅延させるとかで対処する
2021/08/29(日) 13:13:15.88ID:nWxynwj6
これifいらんことない?
2021/08/29(日) 13:42:27.03ID:dJJJwYZf
>>700,702
どうもです。
という事は、最初1ファイルにズラーッと書いて一段落したからちゃんとクラスごとに別ファイルに分けようと思ったら
切り貼りしてimport文付け足すだけでリファクタリング出来る保証は1ミリも無いという事か・・・
2021/08/29(日) 13:44:36.38ID:ik0U7t7o
そんなに気にしなくていいよ
そのレベルだと、後でリファクタリングしたくなる頃には今より遥かに腕が上がっていて、最初の頃に書いた糞コードなんて全部捨てることになるから
2021/08/29(日) 14:28:14.75ID:W2eZWYJ9
>>699
コードとかレスはよく読んでないけど
公式ドキュメントにはfrom import使わずに全部importだけでやれば回避できると書いてあった気がする
まあ実際には100%問題を回避できるわけじゃないはずだが
2021/08/29(日) 17:14:19.33ID:D+nxUtQ9
>>686
オモチャでマジのプログラミングとか考えるな
HelloWorldまでにしとけ

>>698
Vista以降のボリューム変更は確かCOMでしか操作できないんだよなあ
MMDeviceだかってやつ
初心者(が/でなくとも)ctypesから使うのは荷が重い気がする
2021/08/29(日) 17:31:44.52ID:f3cdDfKi
外部プロセスでPowerShell呼ぶとか
そもそもPowerShellで書くのはダメなのか
適材適所
2021/08/29(日) 18:01:08.20ID:wRzFeJgq
趣味でゲームを作っているpython初心者です
発想を間違えている気がするのですが調べても独力で修正できないので質問させてください

pythonでは ファイル間を超えて有効な広域配列変数を定義することはできない という理解であっていますか?
アイテム情報や命名マスタなど「あちこちから参照したいマスタデータ」の持ち方が分からず困っています

トップレベル(≒高いレベル)でCSVロードを済ませた配列なりインスタンスなりを、中間クラスの引数として目的の関数まで持ちまわるしかないのでしょうか?
710デフォルトの名無しさん
垢版 |
2021/08/29(日) 20:57:36.98ID:+XFaADRO
モジュールとして参照できる

<vars.py>
X=10
Y=100

<main.py>
import vars
print(vars.X)
print(vars.Y)
711デフォルトの名無しさん
垢版 |
2021/08/30(月) 14:16:06.77ID:a7szkEqk
memcached
pymemcache
2021/08/30(月) 15:03:22.80ID:IH9WNTpQ
>>709
テストや柔軟性をかんがえるとクラス化してメソッド(関数)経由にしとくのであってる
Python定番の設定管理向けモジュールがないのが難

>>711
みたいに格納先を変えたい場合でも対応できるし
713デフォルトの名無しさん
垢版 |
2021/08/30(月) 17:48:48.11ID:7NK+aNuC
configparserもヘナチョコいんよねえ
714デフォルトの名無しさん
垢版 |
2021/08/30(月) 22:43:34.34ID:30yuDIRz
python2でpip等使わずlz4のデータ展開をする方法はありますか?
2021/08/31(火) 00:05:53.27ID:2Z3a814f
OSにliblz4があるか導入できるならctypesモジュールでいけんじゃない
716709
垢版 |
2021/08/31(火) 19:12:15.52ID:9YLyrvXT
みなさんありがとうございます
pymemcacheが探してた答えのようです
>>712
自分の設計が悪いだけなのでしょうが、引数で持ち回ると全体的にコードが冗長になってしまい正解が分からなくなっていました
2021/08/31(火) 19:30:48.38ID:VFuuQVk7
グローバル変数的なものを格納するだけに使うつもりで、常に1つしかインスタンス化しないようなクラスは、全くインスタンス化せずクラス変数とクラスメソッドで使うというのもありですか?
インスタンス化してインスタンス格納用の変数を用意するのが面倒だなと思いまして。
2021/08/31(火) 20:01:08.53ID:2Z3a814f
mockで差し替えたり、初期化を遅延したりしないんならそれでもいいんじゃない
もし必要になったときに見直せばいい
といってもシングルトンの制御いれるだけなんだけどね
2021/08/31(火) 21:31:36.81ID:1mws6K8n
https://ideone.com/Xn6V4Y

1から10まで数え上げるプログラムで
total = 0をdefの上の行に移動するとエラーになります
>UnboundLocalError: local variable 'total' referenced before assignment

defの中からグローバル変数?は書き換えられないということですか?
あたま痛い
2021/08/31(火) 21:47:50.29ID:vXJ7Oc0W
複数行コメントアウトしたいとき
'''
print("hello")
'''
pass

という風にしますが、
解除したいとき変更箇所が2箇所あるのでちょっと面倒だと思いました
なので
#'''
print("hello")
#'''
pass
こうして、上部のみの#を付けたり消したりするだけで切り替えできるようにしてみたのですが
何か不測の事態とか起きるでしょうか?
2021/08/31(火) 21:48:09.84ID:vX6Y4w4T
>>719
global total
2021/08/31(火) 21:53:19.20
エラーでなかった >>719
https://colab.research.google.com/drive/1KbiL4M7797yGTfasvBOkor3HJzTCgPLf
2021/08/31(火) 23:25:58.49ID:7dGeW7mE
>>719
Pythonの変数のスコープについて調べたほうがいいかもね
2021/08/31(火) 23:47:03.52ID:2Z3a814f
>>720
それ文字列リテラルでコメントアウトに使うもんやない
Python対応のIDEかエディタつかおう
2021/09/01(水) 07:51:46.18ID:A3Q1UiDE
twintってライブラリ使ったことある人おる?
自分のアカウントのすべてのツイートをスクレイピングしてきたいんだが、10日前くらいまでのツイートしかとれなくて困ってる
2021/09/01(水) 13:06:04.44ID:uLacWkrf
>>725
https://github.com/twintproject/twint/issues?q=is%3Aissue+10+days
2021/09/01(水) 20:28:34.09ID:KwaoNT+v
いちばん勢いあるPythonスレがこのスレで、この程度の勢いとか
Pythonほんとに人気あるの?
2021/09/01(水) 20:51:14.35ID:zw5pi55j
ム板と言うか5ch自体が衰退メディアですし
2021/09/01(水) 22:50:28.57ID:UppKED7J
>>726
ありがとう。
昨日から使い始めたけど、ちょうどそのタイミングくらいから他の人も使えなくなったっぽいですね
twintをあと1週間早く知ってればよかった。。
2021/09/02(木) 12:59:54.32ID:DVH2qPZi
Windowsでminiconda(4.9.2/python3.8.5)使っててproxy関係のエラーが出る。
proxyが必須なNW環境。
baseだとproxyエラーが出ずrequestで外部URLのスクレイピングなどもできる。
それ以外の環境をconda createで作ってそっちをactivateした状態からだと「cannot connect to proxy」エラーが出る。
.condarcにはproxyを記述してある。
どの環境からconda configを見てもHTTPもHTTPSもproxy情報が参照できている。

baseをcloneした環境を試したらそっちは繋がる。
cloneで作った環境とcloneせずにcreateした環境(proxyエラーになる)とでライブラリをチェックしたけどopensslとかcertifiとか入ってるもの自体はほとんど同じ。
違いというとcreateした方はversionがconda-forgeの最新版になってるからそこだろうか。
minicondaの最新版のインストーラ(4.10.3/python3.9)を使って再インストールしたらbaseからでも繋がらない。
proxy接続のためにWindowsの証明書ストアに.crtファイルをインポートとかしてるからその辺りかもしれない。
731デフォルトの名無しさん
垢版 |
2021/09/02(木) 16:02:33.72ID:L8dQJCTS
初めてwindows使うんですがcondaとpipってどっちがいいんでしょうか
今まではノリでpip使ってたんですがググるとcondaもいいと言われて迷ってきました
主な使用用途は簡単なスクリプトからデータ計算、セキュリティの勉強や自分用のまとめ表作りなど本当に様々です
732デフォルトの名無しさん
垢版 |
2021/09/02(木) 16:15:26.22ID:4vWPiFe2
>>730
原因を調べたいのだったら追及すれば良いけど
そうじゃないならVPNとかSoftEtherとかでProxy無しで外に出れるフェイク環境を作ると解決

>>731
pip
ただしcondaが共存してるときはcondaで先に探して
見つからないときだけpip使うようにしてる
2021/09/02(木) 19:59:47.57ID:bRMdZZsN
>>727
https://search.yahoo.co.jp/realtime/search?p=python
734デフォルトの名無しさん
垢版 |
2021/09/02(木) 20:21:57.15ID:PLPQmXRE
>>731
pip
condaいらん。無駄なことしたくなかったら入れないほうがいい
735デフォルトの名無しさん
垢版 |
2021/09/02(木) 20:32:53.62ID:lSTkj0Rg
https://twitter.com/freezerinalice/status/1433389771800256516
https://twitter.com/5chan_nel (5ch newer account)
2021/09/02(木) 20:41:46.54ID:t+wDMqp+
クラス変数に順次アクセスする方法はありますでしょうか。(define代わりにクラス直下に変数が複数ある状態)
__dict__.valuesで取れるとあったのでリストに入れてforで回そうと思ったのですが、変数以外にいろんな属性がついてきてしまいます。
2021/09/02(木) 20:55:57.53ID:DVH2qPZi
>>732
原因分かったわ。
世の中に配布されてるcertifiのcacert.pemっていうファイルにこの環境で使ってる独自の証明書のpemファイルの中身を追記したら繋がった。
コピペは避けたいから2ファイル読ませられないかとcertifiを調べたけどcacert.pemが決め打ちだから無理っぽい。
ついでになぜか3.8.5までしか動かない問題をチェックしたがそっちは解消されず。
3.9にすると同じ方法でも繋がらないどころかconda自身のアップデートもできない。
openssl周りじゃないかと思うけど諦めた。
2021/09/03(金) 11:02:01.16ID:qtGmv/9F
>>736 こういうこと?

https://stackoverflow.com/questions/1398022/looping-over-all-member-variables-of-a-class-in-python

https://stackoverflow.com/questions/5607307/get-the-list-of-a-classs-variables-methods-in-python
2021/09/03(金) 13:14:44.01ID:QJ/1j3Lw
>>738
出先なんで試せてないですが、そんな感じです。厳密には変数名ではなくて値を取りたいです。
740デフォルトの名無しさん
垢版 |
2021/09/03(金) 21:55:16.43ID:T2V+s1mX
>>738
差集合とるのか。なるほどな
https://ideone.com/OwAB4x
2021/09/05(日) 13:43:56.65ID:LaSEjliV
tzinfoが設定されているdatetimeオブジェクトを、時差が適用された状態で文字列か新しいdatetimeオブジェクトに変換したいです
具体的には↓のコードのlocal_dtから日本時間に変換したdatetimeオブジェクトが欲しいです
↓のコードではpublishedは最初UTCで、それをAsia/Tokyoのlocal_dtに変換しています
しかしlocal_dtのmonthやdayなどを参照しても日本時間になっていません
時差の実際の適用は手動でやる必要があるのでしょうか?

def get_published(self, obj):
print('tzinfo', obj.published.tzinfo) # UTC
tz = pytz.timezone('Asia/Tokyo')
local_dt = obj.published.astimezone(tz)
print('conv tzinfo', local_dt.tzinfo) # Asia/Tokyo
return local_dt
742デフォルトの名無しさん
垢版 |
2021/09/05(日) 14:51:07.53ID:LgQhIBwq
localtime()
2021/09/05(日) 14:53:32.33ID:lJqHVJAL
>>741
特に問題なさそうだけど
https://paiza.io/projects/e/sD6Ie32hJrm87zm1wb_LDg
2021/09/05(日) 15:54:14.08ID:LaSEjliV
>>742
timeモジュールのですか?

>>743
????
同じコードをこちらの環境(Linux)でも実行しましたがうまくいきました
Djangoでコードを動かすとなぜかうまくいきません
なんで?
2021/09/05(日) 16:08:51.59ID:lJqHVJAL
>>744
https://docs.djangoproject.com/en/stable/topics/i18n/timezones/
2021/09/05(日) 19:53:30.08ID:ejEr4mJx
リストの結合について質問です
リストの先頭要素を末尾に移動したいとします
ex)[0,1,2]→[1,2,0]

コマンドラインで以下のように書いたところ
2行目で can only concatenate list (not "int") to list というTypeErrorが発生してしまいました
li = list(range(3))
li[1:] + li[0] # TypeError

結果として
li[1:] + li[:1]
としたら問題なく通ったのですが、先に書いた方がエラーになるのはどうしてですか?

li[0]は0(int型)なので、スライスを使用して取得したリスト(li[1:] で得られる [1, 2]、リスト型)とは加算演算できない、という認識で良いですか?
で、li[:1]で取得できるのはリスト型の[0]なので加算可能ということでしょうか
■ このスレッドは過去ログ倉庫に格納されています