X



Pythonのお勉強 Part63

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ 0301-5HIy)
垢版 |
2020/02/24(月) 10:31:51.39ID:vb10EdOX0
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに増やすこと。

★当スレにRubyのソースコード類を書くことを禁ず★
☆Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
☆「Ruby では」「Rubyでは」をNGワード登録推奨

★エラーを解決したいときはエラー文(勝手に省略禁止、スクショうp等の横着も禁止)と
 環境(Pythonのバージョン+OS名IDE名と夫々のバージョン)をシッカリ書くこと

◆Pythonのソースコードを5ちゃんにコピペするとインデントが崩壊するので
  ↓等のソースコードうp用サイトに貼ってきてくだしあ
    (スクリーンショットをimgur等にうpる「横着」禁止)
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト http://www.python.org/
◇まとめwiki ttp://python.rdy.jp/

●関連スレ●
くだすれPython(超初心者用) その46【Ruby禁止】
http://mevius.5ch.net/test/read.cgi/tech/1577948214/

〇前スレ
Pythonのお勉強 Part62
http://mevius.5ch.net/test/read.cgi/tech/1568531160/

次スレの建立は>>985あたりが挑戦する。  [EOF]
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
0081デフォルトの名無しさん (ワイーワ2 FF93-8H9x)
垢版 |
2020/04/01(水) 11:04:41.71ID:5VJq6KKKF
前観たリアルタイムの放送だと
IOCバッハ会長が
IOCバハ会長となってた
0082デフォルトの名無しさん (ワッチョイ f72d-bdCM)
垢版 |
2020/04/09(木) 00:12:47.33ID:xEeiC1oc0
Python始めましたw
まだ片足の指先を踏み入れた程度だが
目標はUWSCをPythonに置き換え
環境はWindows10で主にWebの自動巡回

コロナ巣籠もりで図書館から適当に5冊入門書借りてきた
図書館だから出来る荒業
第一歩で環境構築だが各入門書の入り口が違う
Pythonのインストールで本家Python、Anaconda、Docker
エディッタがIDLE、Jupyter Notebook、サクラエディッタ、Atomエディッタ

サクラエディッタはUWSCで使ってたので取りあえず本家Pythonとサクラで環境は作ったが
やめた方がいいとかオススメあったら教えてほしい
0083デフォルトの名無しさん (ワッチョイ e2ad-3NCZ)
垢版 |
2020/04/09(木) 01:02:58.90ID:pr5o1NkP0
本家Pythonをドライブ直下とかのわかりやすいところにインストール
エディタはVisual Studio Code
その用途なら重量級のAnacondaは不要
0084デフォルトの名無しさん (ワッチョイ d7ad-LdNq)
垢版 |
2020/04/09(木) 01:32:29.35ID:7CAQ8ULU0
>>82
>>83
エディタはVSCodeがオレもオススメ!

理由は世界的に普及してるから
情報とかプラグインとかが多いし
エディタ本体もプログラミング用だから
普通のテキストエディタより使いやすい
0087デフォルトの名無しさん (ワイーワ2 FFfa-zfCe)
垢版 |
2020/04/09(木) 12:32:51.01ID:kpg/tOgGF
Pythonが未経験ならAnacondaにしとけ
0090デフォルトの名無しさん (ワッチョイ 17ad-Blqg)
垢版 |
2020/04/09(木) 13:44:22.34ID:xW3jPkqa0
俺もanacondaがいいと思う。
ライブラリのバージョンが合わなかったりしたとき、
調べたり調整するの面倒だからcleanして、
また簡単にインストールできるから手軽でいい。
0096デフォルトの名無しさん (ワッチョイ 6f33-ITXX)
垢版 |
2020/04/13(月) 16:00:53.94ID:vA4eHgCK0
Pythonの本書いてる人に、何故文字列にダブルクォートじゃなくてシングルクォート使うのか聞いたら、シフト押さなくてもよくて楽だからって言ってた
0097デフォルトの名無しさん (ワッチョイ e2ad-3NCZ)
垢版 |
2020/04/13(月) 16:12:03.37ID:dKd+Q7GJ0
US配列の場合な。イコールもそのまま押せて便利
そのかわりコロンがシフト押さないといけない
0098デフォルトの名無しさん (ワッチョイ cb5f-zfCe)
垢版 |
2020/04/13(月) 16:17:00.29ID:xWnIwwwl0
pythonはセミコロンあんまり使わんもんな
0100デフォルトの名無しさん (ワッチョイ cb5f-PlZG)
垢版 |
2020/04/14(火) 21:11:32.07ID:aWtxz+/L0
>>96
多くのプログラミング言語でダブルクォートは文字列、シングルクォートは1文字としているからだよ。
0103デフォルトの名無しさん (ワッチョイ 068f-Jrel)
垢版 |
2020/04/14(火) 23:35:38.65ID:RTth2ghS0
C、C#、Javaとかはcharとstringの区別があるからシングルとダブルで区別してるっぽい
Rubyやperlはシングルが単純文字列、ダブルが特殊文字や変数展開あり
php、python、javascriptは基本的にどっちも同じ
0105デフォルトの名無しさん (ワッチョイ 9fad-9n34)
垢版 |
2020/04/15(水) 00:46:12.61ID:sRuwy1Ct0
文字列にシングル入れるときはダブル
ダブルが入るときはシングルって見易くていい仕様だと思うから
下手にエスケープに変換とかして欲しくはないな
0107デフォルトの名無しさん (アウアウウー Sa1b-mcOY)
垢版 |
2020/04/15(水) 08:30:22.53ID:FNBysGoVa
>>106
どちらに一貫するのがいいの?
という話でわ?
0109デフォルトの名無しさん (ワイーワ2 FFdf-xa8R)
垢版 |
2020/04/15(水) 11:41:43.58ID:Y2mip1WIF
s = (abc'def'ghi);
0110デフォルトの名無しさん (ワッチョイ b761-csEB)
垢版 |
2020/04/15(水) 18:11:10.46ID:LkHHawJM0
SQL => 基本的にダブル
JSON,HTML,XML => シングル
これくらいしか決め事ないな。
あとはフォーマッタが何とかしてくれる。
0113デフォルトの名無しさん (ワッチョイ 9f82-ycCE)
垢版 |
2020/04/15(水) 20:20:41.32ID:pMnNTqOZ0
クォート演算子のあるperl最強
0116デフォルトの名無しさん (エムゾネ FFbf-xa8R)
垢版 |
2020/04/16(木) 11:09:52.36ID:przIFznPF
>>112
SQL injection ですねわかります
0118デフォルトの名無しさん (ワッチョイ 375f-NJmS)
垢版 |
2020/04/16(木) 23:05:06.33ID:GRiepDCa0
UNIX系の知識がみんななさすぎw
0123デフォルトの名無しさん (ワッチョイ 375f-rAP/)
垢版 |
2020/04/17(金) 22:54:06.35ID:8S5P2WFb0
>>119
シングルクォーテーションとダブルクォーテーションの使い分けができないとUNIX、Linux、Macは使いこなせない。
0125デフォルトの名無しさん (ワッチョイ 375f-nnXL)
垢版 |
2020/04/17(金) 23:41:28.19ID:8S5P2WFb0
UNIXがなんだと思ってんだよ?

UNIXを作るためにC言語を作り、UNIXのインターフェイスとしてシェルを作った。

そのシェルを効率よく使うためにシェルスクリプトができた。
0126デフォルトの名無しさん (ワッチョイ ff2c-8Jcx)
垢版 |
2020/04/18(土) 00:01:51.38ID:7LyL0DBt0
>>122
今までのRuby on Rails は基本、Mac・仮想OS でLinux だbチたが、
Windows 10, WSL, Ubuntu 18.04 でも、環境構築できるようになった。
VSCode の拡張機能、Remote WSL も使う

Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
rubyのコンパイルに、20分ほど掛かって、
ruby 2.6.6, node 12.16.2 を入れた

yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト

anyenv 公式サイト
https://github.com/anyenv/anyenv

anyenv + macOS環境構築
https://qiita.com/rinpa/items/81766cd6a7b23dea9f3c

anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
~/.bashrc に、下の2行を追加するだけで、各言語ごとに追加しないでも良い

export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"
0127126 (ワッチョイ ff2c-8Jcx)
垢版 |
2020/04/18(土) 00:17:00.41ID:7LyL0DBt0
もし、anyenv を使わなかったら、
例えば、rbenv なら、rbenv-installer を実行して、
~/.bashrc に、下の2行を追加する

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

この手順を、nodenv, pyenv, phpenv など、多言語で繰り返す必要がある。
これらの公式サイトを読むだけでも大変。
これを、anyenv では、自動的にやってくれる

それと、一区切りごとに、端末を再起動して、更新を反映し、
rbenv rehash みたいに、rehash して更新を反映する
0128デフォルトの名無しさん (ワッチョイ 375f-nnXL)
垢版 |
2020/04/18(土) 00:33:39.38ID:AvZMO+wH0
MacはLinuxではなくUNIXですw
0129デフォルトの名無しさん (ワッチョイ 9fad-9n34)
垢版 |
2020/04/18(土) 00:45:15.14ID:BRgon2X90
クロスプラットフォームのPythonではあえて等価にしてるのに
下手にUNIXの知識のまま変数展開とか期待して勝手にキレてそう
0132126 (ワッチョイ ff2c-8Jcx)
垢版 |
2020/04/18(土) 05:46:45.80ID:7LyL0DBt0
rbenv が基本で、皆これを真似て作られた

わざわざ、Python の標準でもない、pyenv を使うという事は、
多言語で、rbenv, nodenv, pyenv, phpenv なども使うという事だろ

だったら日本人が作った、anyenv で同じ使い方で、統一的に扱える!
0133デフォルトの名無しさん (ワッチョイ b763-3MwD)
垢版 |
2020/04/18(土) 05:49:03.43ID:eSPdz8DV0
ガイジが人間様と対等な口を利くな
0134126 (ワッチョイ ff2c-8Jcx)
垢版 |
2020/04/18(土) 05:57:40.40ID:7LyL0DBt0
web 系は、1つの言語じゃ無理。
どの言語でも、Node.js が必須だから

例えば、Microsoft のサイトでは、Node.js のバージョンマネージャーに、NVM を使っている

Ruby はrbenv, Python はvenv、Node.js はNVM と、
各言語で、使い方が異なるのが面倒くさい

たかがバージョンマネージャーぐらい、同じ使い方で統一してもらいたい。
それで日本人が、anyenv を作った!
0137デフォルトの名無しさん (ワッチョイ 9f65-32dU)
垢版 |
2020/04/18(土) 08:06:53.19ID:QAQQG5bq0
>>131
Mac に Python3 をインストールしたいんですけど、
Homebrew 無しで pipenv をインストールする標準的な方法を教えてください
0141デフォルトの名無しさん (アウアウエー Sadf-xa8R)
垢版 |
2020/04/18(土) 10:29:41.83ID:xymtyLA0a
シェルスクリプトで引用符というより``を使うようになって成長したと感じた
結局pythonでsubprocess使った方が便利なのでシェルスクリプト使わなくなったω
0142デフォルトの名無しさん (ワッチョイ 9f52-xanZ)
垢版 |
2020/04/18(土) 10:40:40.82ID:lQefZc9Y0
>>139
この無駄な特徴のお陰で例のRubyバカだと一目で分かってスルーできるから、無くなると困るな。
まあ一番はこのバカがコテ付けるかそもそも書き込みやめるかすればベストなんだけど、壊れたロボットには言葉が通じないから諦めてる。
0144デフォルトの名無しさん (ワッチョイ 9f01-7Des)
垢版 |
2020/04/18(土) 11:46:25.69ID:uOWDKjxa0
>>137
$ pip install -U pipenv

ただpipenvはenvって名前付いてるけど複数バージョンのPythonを管理するものじゃなく
プロジェクト単位の依存ライブラリをPipFileで管理するパッケージマネージャー
JavaScriptのnpm(package.json)やRubyのbundler(Gemfile)にあたるもの

バージョンマネージャーはRuby君が言ってるようにpyenvが標準になりつつある
0145デフォルトの名無しさん (ワッチョイ 9fad-9n34)
垢版 |
2020/04/18(土) 16:33:54.44ID:BRgon2X90
環境構築の定番が毎年変わるのはOSSの面倒なところだな
0147デフォルトの名無しさん (ブーイモ MM9b-ILq3)
垢版 |
2020/04/18(土) 21:57:10.04ID:/h8VXz8jM
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw
0148デフォルトの名無しさん (ワッチョイ 9f65-32dU)
垢版 |
2020/04/18(土) 22:39:19.54ID:QAQQG5bq0
>>144
macOS標準の Python2 でも pip が使えるのは当たり前ですよね
質問の内容は、Homebrew 無しで Python3 の環境構築を実現する方法です
もちろん環境構築には複数バージョンやパッケージマネージも含みます

ただ単に Python3 を使うだけなら、Anaconda がありますけど、
そこからのステップアップは Mac だと(Ruby に頼らなければ)無理なんでしょうか?
0149デフォルトの名無しさん (ワッチョイ 97e6-Ho7r)
垢版 |
2020/04/18(土) 23:01:10.00ID:yzq4DZIh0
ctypesでDLLに配列の途中要素のポインタ渡すのってどうすればいいの?

ary = (c_ubyte * 10)() で配列作ったとして、
これの3番目の要素のポインタを渡したいんだけど、
pointer(ary)[2]とか、poiter(ary)+2とかできなくて困ってる
もしかしてポインタ演算自体できない感じ?
0150126 (ワッチョイ ff2c-8Jcx)
垢版 |
2020/04/18(土) 23:39:08.48ID:7LyL0DBt0
漏れは、無数のMac の環境構築のサイトを見てるけど、
Ruby 製のHomebrew を使わないものは見たことない!
一方、Windows では、chocolatey を使わない人も多いけど

例えば、rbenv-installer では、
MacのHomebrew か、Linux のgit でコンパイルか、処理を分けている

gitなら、build-essential などのコンパイルツールが必要。
Macなら、Xcode だろ

Macで、Homebrewを使わない場合に、正常にコンパイルできるかどうか、分からない。
まず、そういうことをする人が、いない。
Mac/git/Xcode のパターンだろ。
こういう例外を、anyenv の開発者がテストしているかどうか、分からない

#!/bin/bash

homebrew=

# -p : タイプが「file(実行ファイル)」の時のみ実行ファイルの絶対パスを出力する
# (それ以外のタイプの場合は何も出力しない)
type -p brew >/dev/null && homebrew=1

if [ -n "$homebrew" ]; then
# Homebrew で処理
brew update
brew install rbenv --without-ruby-build
else
# git でコンパイル
fi
0152126 (ワッチョイ ff2c-8Jcx)
垢版 |
2020/04/19(日) 04:49:43.90ID:u21QryuH0
Mac には標準で、Ruby が入っているだろ。
そのバージョンが古くなければ、Homebrew も使える

わざわざ、Homebrewを使わないようにする、理由が分からない。
anyenv で、rbenv, nodenv, pyenv, phpenv と入れていけば良いだけ

Homebrewを使わないというのは、特殊中の特殊だから、
そういう手順が、anyenv で動くかどうか、誰にも分からない。
誰もそういう事をしないから、テストされていない

>>150
にも書いた通り、シェルスクリプトを読んでいって、
Homebrewを使わない場合の手順で動くかどうか、確かめるのが大変

基本的に、Mac/Homebrew か、Linux/git/build-essential の2タイプ。
Mac/git/Xcode みたいな事を考慮していないと思う

MacはBSD で、LinuxとはOS が異なるから、
Homebrew を使わない場合に、動くかどうか分からない
0154デフォルトの名無しさん (ワッチョイ d73c-ZrWO)
垢版 |
2020/04/19(日) 08:26:16.00ID:rdnJZpmc0
>>148
ステップアップが意味するところが分からないけど、Mac使いならhomebrewは入れた方が良いね
それとは別に、自分の好きな構築方法はpython3をminicondaでインストール

あとは一般論

機械学習関係でLinux使いなら環境構築はanacondaか最新のdockerがいい
Nvidiaの諸々の依存関係をセットアップするのがすごい楽になる

それ以外ならpyenv+pipenvかanacondaになる
どちらを使うかは宗教論

anacondaはライブラリも含めてダウンロードするので、例えばcentos6.xでglibcが古くてpython3が動かない場合でも最新版が動かせる

anacondaを使う場合で問題になるのは、デフォルトのPythonより優先順位を高くした場合に全く関係ないアプリが動かないことがある
.bashrcや.bash_profileから初期設定を抜くなりbase状態からdeactivateすればもちろん動くが、いちいちめんどくさい

あとは有償のmklライブラリがanacondaはただで使える
それが元で古いMacだとAVX命令がエラーになるとかあってpipでnumpyを入れ直すとか、まぁ細かいことを言うと色々ある
0156デフォルトの名無しさん (ブーイモ MM9b-ILq3)
垢版 |
2020/04/19(日) 11:50:02.80ID:lzjwP47FM
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^

あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!

クソチョンw
0157デフォルトの名無しさん (アウアウエー Sadf-xa8R)
垢版 |
2020/04/19(日) 11:56:56.82ID:QdkeRkpHa
>>149
とりあえずlongに変換してから計算してpointerに変換
0158デフォルトの名無しさん (ワッチョイ 9ff8-jvEx)
垢版 |
2020/04/19(日) 12:50:17.44ID:pMFFArDT0
>>155
別に依存しなくてもインストールできるけど、使えば手間が省けるだけ。winでもわざわざ依存ライブラリを各所から拾ってくるのは面倒でしょ?そこを自動でやってくれる。
cuiが嫌いならanacondaやdockerをguiでインストールすることもできる。選択肢が多い分、ほかのpfより優れてると思うよ。(本件に限れば)
あと、homebrewと比べるならrpmやdebじゃなくてyumやaptな。
0159デフォルトの名無しさん (アウアウエー Sadf-xa8R)
垢版 |
2020/04/19(日) 14:01:08.79ID:QdkeRkpHa
パッケージは便利な反面
何でもパッケージに頼ると
数年後とかに同じ環境を
再現しようとしたとき困る
なので全自動じゃなく
手動で現時点のバイナリ等は
そのまま後で使える様に
ローカルで保存する習慣にしてる
0162デフォルトの名無しさん (アウアウエー Sadf-xa8R)
垢版 |
2020/04/19(日) 16:39:32.05ID:z25dSQuDa
数年後に同じものを落とせる保証は?
0163デフォルトの名無しさん (ワッチョイ 9f01-7Des)
垢版 |
2020/04/19(日) 17:01:10.46ID:uoG1gk2+0
法的/倫理的な問題があったりして削除されるようなものを除けば
パッケージリポジトリが崩壊しない限り落とせるでしょ

それにパッケージマネージャー使ってもローカルに落としてるんだけど手動でやるメリットある?
0165デフォルトの名無しさん (ブーイモ MMbb-+g6E)
垢版 |
2020/04/19(日) 17:53:39.97ID:asuJZYP9M
>>155
ところでpipも使っとらんの?
0166デフォルトの名無しさん (ワッチョイ b714-ESbY)
垢版 |
2020/04/19(日) 20:59:36.18ID:mnSja+cO0
お仕事ください〜
0167デフォルトの名無しさん (ワッチョイ 9733-Df86)
垢版 |
2020/04/19(日) 21:51:21.60ID:ShAQVk2s0
pipとvenvで十分事足りる
0169デフォルトの名無しさん (ワッチョイ 9fa5-5iIe)
垢版 |
2020/04/19(日) 22:32:34.80ID:X1m2vVHB0
HDD単位が数億数兆という富豪の時代なんだからpythonの一つや二つや10や20でケチケチしないのがホンモノの富豪
0171126 (ワッチョイ ff2c-8Jcx)
垢版 |
2020/04/19(日) 23:30:25.24ID:u21QryuH0
anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える。
~/.bashrc に、下の2行を追加するだけで、各言語ごとに追加しなくても良い!

export PATH="$HOME/.anyenv/bin:$PATH"
eval "$(anyenv init -)"

global でシステム全体、local でそのプロジェクトだけのバージョンを切り替える。
コマンドラインから一時的に切り替えたい場合は、shell を使う。
すると、環境変数 RBENV_VERSION に設定される

rbenv global 2.6.6
rbenv local 2.6.6
rbenv shell 2.6.6

apt などで、/usr/bin/ruby へインストールした、バージョンを使いたいなら、
rbenv global system
rbenv local system
rbenv shell system

この使い方が、全言語で統一されているから楽

$ which ruby
~/.anyenv/envs/rbenv/shims/ruby
$ which node
~/.anyenv/envs/nodenv/shims/node
0173デフォルトの名無しさん (ワッチョイ d73c-7Des)
垢版 |
2020/04/20(月) 17:26:34.99ID:a8zbn2bF0
>>170
>>157の名誉のために同じ動作をする別のコードを示そう

addr = ctypes.addressof(ary) # addrはint型なので演算可
p = ctypes.cast(addr + 2, c_void_p)

64ビットアーキテクチャになってアドレスサイズが8バイトになったので
C言語のint型(4バイト)ではなくlong型(8バイト)で扱う必要がある
ただpython3はlong型がなくなりint型に統合したのでそのまま扱える
0174デフォルトの名無しさん (ワッチョイ 979b-3sNk)
垢版 |
2020/04/20(月) 21:43:50.05ID:OAN55Xk30
>>154
久しぶりに勉強になるレス。参考になった。
ところでWinで開発してLinuxに持って行ったりするんだけど、アーキテクチャによって環境構築が違うから大変。Dockerで解決するかな?試せよって話だが。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況