くだすれPython(超初心者用) その39

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/08/24(金) 07:50:35.97ID:VD4/++xS
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで

前スレ
くだすれPython(超初心者用) その38
https://mevius.5ch.net/test/read.cgi/tech/1526522954/
2018/10/06(土) 18:22:42.90ID:ClYVvTDI
ほんとだ、結局JavaScriptが必要ですね
それに、誰かにやってもらう場合だと、サーバー用意するか、相手の方にもPythonいれてもらわないとダメだ…
402デフォルトの名無しさん
垢版 |
2018/10/07(日) 08:57:44.35ID:uCAn2+3z
言語より環境の方に縛られるという事だな
403デフォルトの名無しさん
垢版 |
2018/10/07(日) 12:13:18.81ID:Q039ezIc
既に環境を構築してあるDockerを使え
便利だぞ
2018/10/08(月) 14:28:05.12ID:ofuYlJd2
webapiで取得したjsonのログデータを取得したあとcsvに変換するプログラム作ってます
pandas使ってappendで1行毎dataflameを追加していく方式でやっているんですが処理時間がかなり掛かってしまいます
jsonをcsvに変換する良い方法他にないですかね?
jsonはかなり深くネストされておりfor文使って特定のキーの場合のみdf追加としているので処理が重そうです
csvは10万行近くになります
405デフォルトの名無しさん
垢版 |
2018/10/08(月) 15:11:28.99ID:+5qyKWRv
元のjsonファイルと出力したいcsvのイメージ貼ってみ
2018/10/08(月) 16:49:00.47ID:QZm1evdb
jsonはこんな感じにvisitの中身全部が欲しいです https://jsoneditoronline.org/?id=9ceece44f53c498e925b524305f23a33
csvはこんな感じhttps://dotup.org/uploda/dotup.org1662082.jpg
keyがカラムで値がフィールド、actionsの中のthreatsが配列になってるのでその部分は複数行に分けて配列数分欲しいです
407デフォルトの名無しさん
垢版 |
2018/10/08(月) 19:20:19.69ID:0S7LCRH0
1レコードあたりの行数に目途が付くなら
単にテキストファイルをシーケンシャルに読んで
レコード毎にループして正規表現とかで処理するか
丸ごと一個のjsonを読むんじゃなくて
json の visits [] の中身だけに適用して
やっぱりレコード毎にループで処理
2018/10/09(火) 11:08:24.97ID:ut46KIbF
ちょっと何言ってるか分からないです、もう少しかみ砕いてほすぃ
2018/10/09(火) 12:09:20.78ID:lquF7TGT
>>408
全体的にpandasは使わずに
正規表現などを使った自前の処理でカンマ区切りのテキストを生成して
テキストファイルに追記モードで行を追加していけば処理が軽くなるんじゃね
ということ

あと、countryとcountryCodeが常に同じペアになるなら長い方を削除するとか
"os": "Windows"を"win"とか"w"に変換するとかで書き込み量を減らせば
多少早くなるかも
410デフォルトの名無しさん
垢版 |
2018/10/09(火) 17:28:44.16ID:c0UbTvkE
jsonのobjectって結局馬鹿デカいリストだから
全部pandasに食わせるのは非効率
2018/10/09(火) 19:09:14.17ID:QlHcI7ga
>>407
>>409
ありがとうございます
目処は付かないですね 25000件のjsonを中の配列単位で分けていくと10万行になったて感じですので…
pandasは勝手に軽いものと思ってたんですがそうでは無いのですね
もう少し自力で試しつつ、無理そうであれば別の方法探してみます
回答ありがとうございました
412デフォルトの名無しさん
垢版 |
2018/10/10(水) 01:28:49.68ID:cxHjn/W/
25000件で10万レコードって意味なら
1レコードあたりたったの4行だぞ
大したことないじゃん
2018/10/10(水) 01:50:02.45ID:q9nqGoRh
恥ずかしい
2018/10/10(水) 07:27:32.29ID:sjNy7la0
anaconda環境でnotepadでプログラム書くのできますか?
Jupiter使ったほうが良いでしょうか?
2018/10/10(水) 07:48:52.41ID:qywSzTWT
メモ帳は、プログラミングに使ったらダメ!

BOM付きUTF-8 になるから、バグる。
BOMなしUTF-8(UTF-8N)にできるエディタを使うべき!

今は、すべての言語で、VSCode を使う
2018/10/10(水) 08:25:31.03ID:sQpJ1MsF
jupyterな
2018/10/11(木) 05:13:12.70ID:MfMAF/GN
>>415
ありがとうございます。PCが古いので軽いの探します。
2018/10/11(木) 06:05:36.88ID:4dmempzq
>>417
メモ帳のような気楽に使える軽いWindows用エディタでTeraPadがあるよ
BOMなしUTF-8にも対応してて、設定することでデフォルトで使う文字コードや改行文字などを指定できる
いろいろな言語の予約語の強調表示にも対応してる

TeraPad
https://www.vector.co.jp/soft/win95/writing/se104390.html
419デフォルトの名無しさん
垢版 |
2018/10/11(木) 08:09:45.65ID:MfMAF/GN
>>415
すいません、ありがとうございます。

それとパスが通ってなくコマンドプロンプトからpythonと入れても起動できなくて、anaconda3\pythonだと起動するのですが。
環境変数にC:\Anaconda3;C:\Anaconda3\Scripts;C:\Anaconda3\Library\bin;など色々試してもダメでした。

英語のサイトとかを見てもできなくて、なんか根本的な所が足りないと思います。
なにか根本から勉強できるサイトはないでしょうか?英語でもなんとか頑張ります。
2018/10/11(木) 08:27:36.65ID:55KoDwWG
>>419
ログインし直す
2018/10/11(木) 09:45:22.82ID:/KTbB4eS
Python と Javascript ではじめるデータビジュアライゼーションの50ページです

https://ideone.com/Xv83M6
28行目でエラーになってしまいます。

Traceback (most recent call last):
File "./hoge.py", line 28, in <module>
cols.sort()
AttributeError: 'dict_keys' object has no attribute 'sort'

何がいけないんでしょうか?
2018/10/11(木) 11:12:50.15ID:dGtKIiaR
'dict_keys' オブジェクトは 'sort' 属性をもっていない
sortメソッドはおそらくリストオブジェクトのメソッドだろうから
dict_keysオブジェクトをlistオブジェクトにしたら動くと思うよ
2018/10/11(木) 11:17:30.10ID:6B3tPTW8
>>417
MeryやgPadがおすすめ
TeraPadはUTF-8で読み書きはできるけどShiftJISに無い文字は扱えないのでおすすめしない
2018/10/11(木) 11:25:22.78ID:/KTbB4eS
>>422
どうもありがとうございます
list()で括ったらうまくいきました

3年くらい前の本なんですが、Python2だとこれでも動いたのかそれとも誤記なのかどっちでしょうか?

次のページで、printする際に最後にコンマを付けると改行されないと書いてあったけれど、python3ではコンマ有る無しで表示結果は変わりませんでした。

print(hoge), # こんな感じで
2018/10/11(木) 11:31:34.26ID:3Bdkvxy9
漏れは、TeraPad は、メモ書きに使っている。
アプリのサイズが小さい

ただし、一部の文字が使えない。
中国の地名の「深圳」みたいな文字が「深?」になる
2018/10/11(木) 11:35:19.88ID:dGtKIiaR
>>424
詳しくはpython2とpython3の違いでググってね
2018/10/11(木) 11:43:56.19ID:3Bdkvxy9
>>419
例えば、コマンドプロンプトで、where notepad
と入力すると以下のように、メモ帳の実行ファイルのパスが表示される

C:\Windows\System32\notepad.exe
C:\Windows\notepad.exe

同様に、where python と入力すれば?

これで正しく表示されないのなら、
python.exe があるフォルダを、ユーザー環境変数PATH に追加する

環境変数PATHをいじるという事は、全システムの挙動を変える、危険な行為だから、
その知識がないと、開発なんてできない!
2018/10/11(木) 12:31:23.10ID:3et536X6
>>424
3年前でpython2なのか、スゲー本だな
訳注ぐらい入れれば良いのにね
python3だとprint(hoge end='')
2018/10/11(木) 12:35:06.81ID:3et536X6
いけねカンマ抜けた
print(hoge, end='')
2018/10/11(木) 13:10:38.79ID:bLRRmr2D
>>426
>>428
>>429
どうもありがとうございます。
2と3の違いググりました。
listで括らない方法はPython2でのやり方、printの最後のコンマもPython2でのやり方なんですね

2016年7月に原書が出て2017年8月に日本語版が出た本です。
今見たらprintの訳注が載ってたんですが、コンマはPython2でのやり方で3では使えないと言った事は書かれてありませんでした。
print(hoge, sep='')だとよりPythonらしい書き方だという風に書いてありました。
431デフォルトの名無しさん
垢版 |
2018/10/11(木) 18:42:11.43ID:MfMAF/GN
>>427
ありがとうございます。
ずっとやってましたが、色々と調べててもわかりそうにありません。
anaconda3\pythonで動くのに、whereでpythonは出てこず、Path設定してもダメです。
ほんと基本がわかってないと思うので、pathにチェック入れてanacondaを再インストールしてみようと思います。
自分でいじるのは、知識をどうにかしてつけてからにします。
2018/10/11(木) 20:38:12.53ID:OPK+KI2v
>>431
Pythonで何をしたい?機械学習関係ならGoogle Colabがお手軽
2018/10/11(木) 23:48:03.56ID:gjrJHmO+
Anacondaのデフォインストール先C:\Users\<ユーザー名>\Anaconda3じゃん
C:\Anaconda3にパス通しても動かなくて当たり前
コマンドプロンプトからやらずにスタートメニューのAnaconda Promptから開けばパス通ったコマンドプロンプトが開く
2018/10/12(金) 05:14:13.33ID:sf+PB/Vk
>>432
将来的に検索もできる対話型AIを作りたいです。
>>433
その当たり前がわからなくて、色々サイトみてて当たり前にできてるようなので、問題解決しないとダメなのかなって思ってしまいます。
パスが通ったとか、コマンドプロンプトとanaconda pronptがどういったものかもわからない状態です。
一つ一つがどういったもので、どう動いてるとかから勉強したいと思います。
435デフォルトの名無しさん
垢版 |
2018/10/12(金) 09:45:35.48ID:C1pVYns8
Linux の基本コマンドとか、環境変数PATH など、
OS の基礎を知らない人は、開発者になれない

情報処理資格とか、コンピューターリテラシーが必要

仮想環境では、activate を実行したときだけ、
環境変数PATH に追加するようなプログラムもある

activate する前には、python というコマンドは実行できないが、
activate した後には、python というコマンドが実行できる
436デフォルトの名無しさん
垢版 |
2018/10/12(金) 14:37:53.89ID:46Wm2YVF
>情報処理資格

Linux とは関係ない

開発に必要ということは同意
2018/10/13(土) 20:39:27.21ID:i2AAnytP
EXCELを操作できるライブラリopenpyxl(ver2.3.0-1)なんですが行の挿入でエラーになります。

import openpyxl as py

wb = py.load_workbook('aa.xlsx')
ws = wb.active
ws['A1'] = 'NURUPO'
ws.insert_rows (1)
wb.save('aa.xlsx')

insert_rowsじゅないの?
2018/10/13(土) 21:34:22.63ID:f9khLXsZ
>>437
ちょっとググったら2.5.0から実装されたみたいよ
https://qiita.com/gameover/items/13868ca9101348bdf4fc
2018/10/13(土) 22:05:44.95ID:i2AAnytP
サンクス
バージョンアップに挑戦してみる
2018/10/14(日) 00:43:28.48ID:7a55cFNG
re.searchでグループ化したものを取り出す時に
?P<name>で出来たのですが
re.subと同様に通常の正規表現の「\1」のように
書く書き方は出来ないですか? よろしくお願いします。
2018/10/14(日) 02:11:30.62ID:bkAbhEU5
>440
> m = re.search("b(.)", "abcdefg")
> print(m.group(1))

c
2018/10/14(日) 02:22:51.26ID:7a55cFNG
>>441
ありがとうございます!
2018/10/14(日) 06:13:05.25ID:Ov+YlZxq
アナコンダインストールすればIDEいらない?
444デフォルトの名無しさん
垢版 |
2018/10/14(日) 16:58:59.85ID:G4e8iFcg
Py_INCREF()を呼ぶタイミングを教えてください
2018/10/14(日) 19:12:00.22ID:NuEYON6j
下のようなコードを書いたとして、
mainの中でfunc1が呼ばれない場合でもhogeはimportされますか?
func1はテスト用に置いてるだけで普段は使わない関数なので普段は余計なhogeをインポートされたくないのですがやはりコメントアウトしなきゃですかね?

def func1():
import hoge
...

def main():
...
2018/10/14(日) 19:35:54.62ID:FWr9wKhu
>mainの中でfunc1が呼ばれない場合でもhogeはimportされますか?
されないよ ためしてみそ
2018/10/14(日) 20:15:26.78ID:O0tCb1jZ
ありがとうございます!
確かめたくても方法が分からなかったですので。助かりました
2018/10/14(日) 21:15:09.25ID:jLw0xcfm
>>446
どうやったら試せますか?
449デフォルトの名無しさん
垢版 |
2018/10/14(日) 21:16:06.39ID:WLfX4fFS
キャッシュで判る
2018/10/14(日) 21:44:29.12ID:FWr9wKhu
>>448
>>445の状態で、importしてないと呼び出せない機能をmainに書き込む
たとえば

def func1():
import re
re.compile('hoge')←これはfunc1をよんでくればエラーしない

def main():
re.compile('hoge')
↑func1をよんでないのにこれ書いたらエラーする
451デフォルトの名無しさん
垢版 |
2018/10/14(日) 21:45:08.68ID:SE0u9ZQa
日本語で
452デフォルトの名無しさん
垢版 |
2018/10/14(日) 21:46:06.36ID:WLfX4fFS
その理屈だと一回呼んで戻ってきたら使えることになるな
2018/10/14(日) 21:48:40.36ID:FWr9wKhu
>>452
あー
そのはっそうは なかったw

450のかき方(インデントは正しくできているものとしてクレン)したら、
func1の中でしかreのimportは効いてナインかな
2018/10/14(日) 21:53:34.20ID:FWr9wKhu
ちょっとちゃんと実験してみるは... 三 ( ´D`)
2018/10/14(日) 21:59:28.27ID:FWr9wKhu
( ・∀・)ノフォラァヨ!!---===≡≡≡ ttp://dpaste.com/18SSZEP :main内でエラーするかきかた
2018/10/14(日) 22:03:32.75ID:FWr9wKhu
つづき
ttp://dpaste.com/17A5RJ3 :やっぱりmain内でえらーしますた (この はっそうは なかった)

けつろん
 >450の注釈はまちがいまくりだな!ゲヒャ(∀・∀)
 >>452の疑問はどんぴしゃごもっともだった
2018/10/14(日) 22:19:11.86ID:FWr9wKhu
けつろん

> 450のかき方(インデントは正しくできているものとしてクレン)したら、

func1の中でしか
reのimportは効いてナイン
458デフォルトの名無しさん
垢版 |
2018/10/14(日) 22:21:07.83ID:OWtIHbk2
importされたモジュールはimport 文が表れるスコープのローカル名前空間で名前を定義される

https://docs.python.org/ja/3/reference/simple_stmts.html#import
2018/10/14(日) 22:52:00.55ID:FWr9wKhu
>>458
ありがとーん
2018/10/14(日) 22:53:21.18ID:O0tCb1jZ
結局スコープ内でしか有効じゃないから確かめる方法は無いってこと?
2018/10/14(日) 22:53:49.91ID:jLw0xcfm
たいへん勉強になりますた。
462デフォルトの名無しさん
垢版 |
2018/10/15(月) 04:25:17.24ID:0W4mw5Ny
>>460

>>449
キャッシュで判る

実行前にキャッシュを消して
実行後にキャッシュが出来ているかを見れば
読み込まれたか無視してるかは判る
2018/10/15(月) 08:59:02.58ID:pyA/8yHB
キャッシュはどうやって見れますか?
mainでキャッシュ見れる関数を書くのですか?
2018/10/15(月) 09:32:04.81ID:vNVpiBIf
マジでアホの考えなんとやらだ
importするとクラッシュするモジュールを用意して
func1からimportしてみりゃーいいだろ
クラッシュすればimportされてるし、しないならimportされていない
2018/10/15(月) 09:56:16.94ID:XOcEM3KA
importするとクラッシュするモジュールが発見出来ませんでした・・
よければ名前を教えて貰えますか?pipで入れられたらなおありがたいです。
2018/10/15(月) 09:57:31.08ID:vNVpiBIf
いや、自分で書けばいいだろ
馬鹿が
467デフォルトの名無しさん
垢版 |
2018/10/15(月) 10:31:21.43ID:/DZZgAIK
importするmoduleを自分で書くなら
moduleの初期化時にprint('読まれたよ!')って書いて置けば桶
2018/10/15(月) 12:38:01.14ID:A4+xGAqj
なんなの遊園地?
469デフォルトの名無しさん
垢版 |
2018/10/15(月) 16:32:59.34ID:13a7w8hI
>>467
天才現る!
470デフォルトの名無しさん
垢版 |
2018/10/15(月) 18:05:35.02ID:5iEXqQwD
>>460
スコープ内で有効だから確かめられないではなくグローバル変数にすれば良いのでは

def func():
import re as _re
global re
re = _re

def main():
func() #コメントアウトするとprintでエラー
print(re)
471デフォルトの名無しさん
垢版 |
2018/10/15(月) 18:19:51.97ID:/DZZgAIK
def main():
#func() #func()無関係にprintでエラー
import re as _re
print(re)
2018/10/15(月) 21:29:43.28ID:E6pr56BO
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。
2018/10/15(月) 21:35:11.02ID:E6pr56BO
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。
2018/10/16(火) 17:08:42.26ID:u7YyW5Kg
自作クラスのインスタンスが持ってる変数を全て、保存しておいた値に戻すようなコードを書きたいのだけれど、どうやって書けばいいかな?
ある時点の値にロールバックしたいということなのだけれど、継承していてもちゃんと動作するようにしたい
想定している処理はこんな感じ

class A:
 def rollback(self):
   全部のインスタンス変数を self.backup の値に戻す

 def make_backup(self):
   self.backup = バックアップを作成

class B(A):
 def proc(self):
   self.make_backup()
   # なんか処理
   self.rollback()

設計が悪いと感じたらなにか代替案を教えていただければ嬉しいです
475デフォルトの名無しさん
垢版 |
2018/10/16(火) 18:16:27.10ID:YLHbxnbG
pickle
2018/10/16(火) 18:24:52.10ID:LVmCdvc6
あの、プログラム終わったら次のプログラムを起動したいのですがどうやったら開けますか?
最後にはシャットダウンしたいです。

p1.py実行
→最後の行でp2.pyを呼び出す
→p2.py実行
...
→最後の行でpn.pyを呼び出す
→pn.py実行
→最後の行でシャットダウン

こんな感じでやりたいです。
477デフォルトの名無しさん
垢版 |
2018/10/16(火) 18:28:08.45ID:YLHbxnbG
subprocess.Popen
2018/10/16(火) 18:32:15.10ID:LVmCdvc6
ありがとうございます、できそうです。
2018/10/16(火) 18:34:41.31ID:+Y6Wm7U2
パイパイを実行?
2018/10/16(火) 21:07:08.91ID:uMB0oNTu
>>476
それチェーンにしないとダメなの?
普通にp1.py, p2.py, ..., pn.pyを次々に呼び出して最後にシャットダウンするシェルスクリプトなりバッチファイルなりを書けばいいような気もするんだが
2018/10/17(水) 11:21:44.01ID:tSH31TrF
>>474
グローバル変数使うんじゃだめ?
482デフォルトの名無しさん
垢版 |
2018/10/17(水) 11:49:20.45ID:LtC7K5yP
ORM
2018/10/17(水) 12:47:48.23ID:tSH31TrF
>>474
>>481です。知ったかぶりしてすみません。グローバル変数ではなくクラス変数でした。
test.pyで
class MyClass:
  commonVALUE=0
  def __init__(self,initv):
    self.value=initv
  def p(self):
    print(f'instance value= {self.value}')
    print(f'class value= {MyClass.commonVALUE}')
  def bkup(self):
    MyClass.commonVALUE=self.value
  def bkload(self):
    self.value=MyClass.commonVALUE
としといて
>>> from test import *
>>> a=MyClass(100)
>>> b=Myclass(0)
>>> a.bkup()
>>> b.p()
instance value= 0
class value= 100
>>> b.bkload()
>>> b.p()
instance value= 100
class value= 100
この後で
>>> c=MyClass(-1)とあらたにインスタンスを作っても
>>> c.p()
instance value= -1
class value= 100
で、クラス変数は0にはならないみたい。
2018/10/17(水) 13:06:09.93ID:tSH31TrF
行数制限のため連投ですみません。
継承も大丈夫です。
>>> class B(MyClass):
...   def dec(self):
...    self.value-=1
>>> d=B(1)
>>> d.p()
instance value= 1
class value= 100
>>> a.bkup()
>>> d.p()
instance value= 1
class value= 100
>>> d.bkload()
>>> d.dec()
>>> d.p()
instance value= 99
class value= 100
485デフォルトの名無しさん
垢版 |
2018/10/17(水) 13:31:27.53ID:LGIAN4QA
pickle
2018/10/17(水) 13:35:53.65ID:cWz6TRDk
>>483
それじゃクラス共通になってまうやん
インスタンス毎にバックアップデータ持てないから意図と違うと思う
>>474 で良いと思うけど、何を懸念してるのかを書くともっといい案をもらえそう
2018/10/17(水) 17:07:18.34ID:tSH31TrF
>>486
クラスと継承クラス共通でバックアップって意味じゃないの? そりゃスマンコってす
...
各インスタンスごとのバックアップを作って、一括でpush/popしたいなら、
リストの要素を各インスタンスをにしといて、
for i in in instance_list:
 i.backup()
とかにすればいいだけなんでねの?
2018/10/18(木) 10:08:35.95ID:0gY6dccD
>>487
push-popと言いながらプログラムはpush-popじゃないのはわざと?
489デフォルトの名無しさん
垢版 |
2018/10/18(木) 16:41:15.03ID:551Ojw2f
def 関数(arg1,arg2):
ゴニョゴニョ


return ←これが全く理解できないんだけど、目からウロコみたいなページみたいなのないです?


returnが入ると全くわからない。
2018/10/19(金) 07:14:22.21ID:97FgwNUY
codecs.openて普通のopenより処理重いきがするんですが認識あってるかね?
2.7使ってて文字コード指定で100mb前後のtxtなりcsvてり触りたいんだけど通常のopenでは文字指定出来ず、ioモジュールのopen使うと他のライブラリで使ってるopenの挙動がおかしくなる(?)し、codecs遅いしでどうするのがスマートなのかわからん
2018/10/19(金) 08:17:42.62ID:5hJcbR3H
codecs.openを使う
そもそもopenに追加処理をしてるのだから、重くて当たり前だろう
492デフォルトの名無しさん
垢版 |
2018/10/19(金) 12:51:38.13ID:jQ8EJjtV
> 488
https://youtu.be/neqp_mK1PWM#t=4694s
2018/10/20(土) 14:00:43.26ID:aYMp4dZA
https://github.com/michaldaniel/Ebook-Viewer
こちらのgitで公開されているLinux用epubビューアを改造して使いやすくしようと思っているのですが、
行き詰まってしまいました。
ブラウザの戻るボタンのようにリンク先(引用元など)に飛んだ後、直前に戻るボタンを実装したいのですが
(ボタンはgtk3の都合上up arrowボタンを使っています)
改造したのはheader_bar.pyでして、

def __populate_headerbar(self):
(途中省略)
# Adds up arrow chapter navigation button
self.up_arrow_button = Gtk.Button()
self.up_arrow_button.add(Gtk.Arrow(Gtk.ArrowType.UP, Gtk.ShadowType.NONE))
self.up_arrow_button.set_sensitive(False);
self.up_arrow_button.connect("clicked", self.__on_up_arrow_clicked)
navigation_box.add(self.up_arrow_button)
(途中省略)
def __on_up_arrow_clicked(self, button):
"""
Handles Up Arrow clicked navigation event, go backward
:param button:
"""
if viewer.Viewer.can_go_back():
viewer.Viewer.go_back()

とすると、
WebKit.WebView.can_go_back() takes exactly 1 argument (0 given)
というエラーがでてしまいます。
(viewer.Viewerはwebkitを継承したものです)
どなたかお知恵をお貸し願えたら幸いです。
494デフォルトの名無しさん
垢版 |
2018/10/20(土) 14:07:46.36ID:u8BRF3D8
http://99blues.dyndns.org/blog/2010/01/pywebkit/
2018/10/20(土) 14:24:18.46ID:n6bj2eyU
>>493
インスタンスメソッドをクラスメソッドみたいにして読んでるから、第一引数として暗黙的に渡されるはずだったselfが足りないって怒られてる。

ソースを斜め読みするとViewerのインスタンスはインスタンス構造上の親であるMainWindowが持っているようなので、
self.__window.viewer.can_go_back()でアクセスできるんじゃないかな
496493
垢版 |
2018/10/20(土) 15:04:15.12ID:aYMp4dZA
>>495
if self.__window.viewer.can_go_back():
self.__window.viewer.go_back()

と書いてやってみたらエラーメッセージはでませんでしたが画面が真っ白になってしまいました。
とはいえ、当初のエラーは解消したので大きな進歩です。どうもありがとうございました。
後は勉強がてら自分でやってみます。
2018/10/20(土) 15:04:58.12ID:aYMp4dZA
>>494
さんもレスありがとうございました。
2018/10/20(土) 18:30:22.23ID:V2vR4ZZl
>>489
defがここでおしまいですよ 呼び出し元にかえりんしゃー

という意味
2018/10/20(土) 18:31:25.93ID:V2vR4ZZl
>>490
from codecs import open as codecsopen
とかやって、
codecsまるごとじゃなくcodecs.openだけ読むようにすればちょっとははやくできる
ちょっとは。
2018/10/22(月) 23:03:44.42ID:bT6j7LGV
素人質問で申し訳ないのですが助けていただきたく質問します。

いま「みんなのPython」をやりはじめたのですが
Anacondaがうまくできません

最初に普通?のPythonをインストールして
そのあとにPythonをアンインストールしたあと
Anacondaをインストールしました。
そして「ファイル名を指定して実行」で「python.exe」と入力しても
「'python.exe'が見つかりません」となってしまいます。
Windows PowerShellで「>python」と入力しても
「用語 'python' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません」
となってしまいます。

Anacondaのインストールでは
「Add Anaconda to my PATH environment variable」にはチェックは入れてません
「Register Anaconda as my default Python 3.6」にはチェックを入れました。
2018/10/22(月) 23:37:57.82ID:aY20u7RH
英語よめや。
■ このスレッドは過去ログ倉庫に格納されています