0
0
テーマ、知りたいこと
WindowsとMacの2台使いについて
プログラムを書く際にこの2台を並行して利用することは適していないと感じます。
同じく使用している方や、有識者の方はどうするべきかコメントいただけると幸いです。
背景、状況
私は大学の研究室ではMac、自分のPCはWindowsを使用しています。
基本的にipynbを使って、pythonを使っていることが多いですが
二つのOSを使うことによる出力ファイルのcsvの文字コードや、挙動のエラーがうっとうしいです。また、先行研究は研究室内のMacで作成されているため、研究を進めるには大学に行かなければなりません。マシンパワーもMacの方があります。
理想は、研究室のMacで作成したコードをそのままgithubやUSEメモリ等で共有し、修正なしにWindowsでも動けばいいなと考えています。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答20件
#1
総合スコア10718
投稿2023/05/19 11:01
二つのOSを使うことによる出力ファイルのcsvの文字コード
現状、それぞれのマシンでどういう設定にしているのでしょうか?統一出来ないのでしょうか?
先行研究は研究室内のMacで作成されているため、研究を進めるには大学に行かなければなりません。
自宅ではWSLでは駄目なのでしょうか?
マシンパワーもMacの方があります。
こちらについてはマシンスペックの違いではなくOSの違いで発生しているという意味でしょうか?
#2
総合スコア20
投稿2023/05/19 12:29
#1 コメントありがとうございます。
当方初心者のため、表現に誤りがあるかもしれません。
二つのOSを使うことによる出力ファイルのcsvの文字コード
現状、それぞれのマシンでどういう設定にしているのでしょうか?統一出来ないのでしょうか?
すみません、文字コードというより改行コードの方が正しいかもしれません。
基本的には文字コードはUTF-8にしています。
LFとCRLFの違いで、すぐに読み込めないため、少々面倒に感じます。
自宅ではWSLでは駄目なのでしょうか?
現在はVSCodeにて、ipynbファイルを使用しており、ターミナルでWSLを使用できる形ではあります。
ただ、ipynbファイル上での、!を文頭につけたターミナルの起動はWSLではなくコマンドプロンプトの起動になってしまい、ターミナルを開き、コピーペーストが必要となっていて、面倒に思っています。
マシンパワーもMacの方があります。
こちらについてはマシンスペックの違いではなくOSの違いで発生しているという意味でしょうか?
表現が分かりにくくて申し訳ありません。
OSの違いではなく、マシンスペックであると思われます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#5
総合スコア504
投稿2023/05/20 03:21
編集2023/05/20 03:23[香車]東上☆あらし☆海美「
研究が進まなくて留年するより、自宅用に Mac を追加購入するのが、安いみみ。
Mac mini ならモニター、マウス、キーボードは、Windows PC 用の奴が流用できるみみ。
中古の Intel なら、安く買えるみみ。
」
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#7
総合スコア88
投稿2023/05/23 01:41
Windows側でWSL(WSL2)を使うことで解決するはずです。
また、学校やMacを抜きにしても、
今後もプログラミングをするならWindows上ではなくWSL上で開発する方が大抵の場合良いでしょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#8
総合スコア4447
投稿2023/05/23 12:09
私は業務上WindowsとMacを使い分けています。GithubやOneDriveを使ってコード共有も行っています。
どちらのOSでも同じようにコードやドキュメントを扱うことを前提としているため、きちんと両OSで「共有できる」ようにコーディングように気を付けています。
どちらかのOSの機種依存にならないように、コンソール側に出力される文字コードや改行コードに依存しないように、ということを常に意識してきた結果、無意識にそのようなコードを書けるようにはなっています。
大学の先行研究の成果がMacOSに依存するコードで書かれているのであれば、あなたもそれに合わせるのが賢明であると思います。Windowsでも動作することが理想ですが、理想を実現するのが難しければこちらから現実に歩み寄るのが結局一番コストが低くなります。
私がMacとWindowsを使い分けるのも、結局案件によってはどちらかに依存しなければならない状況もあるので両方の環境を用意しているに過ぎません。パソコンも道具なので適材適所による使い分けをしてるわけですね。
研究の本質でない部分(この件ではMac依存の仕組みがあってそれを容易に解決できない)で引っかかるのは時間と情熱がもったいないので、足繁く研究室に通うか(私は大学時代よく研究室に泊まり込みました)、いっそ個人でMacBookを購入してしまうのも解決策の一つではないかと思います。学割もありますしね。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#9
総合スコア20
投稿2023/05/23 12:19
編集2023/05/23 12:22#3
コメントありがとうございます。
autocrlfについて調べた限りだと、mac、Windowsどちらにおいても、Trueにしておけば、前述の改行コードについては解決できそうですね。ありがとうございます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#17
総合スコア88
投稿2023/05/24 01:46
編集2023/05/24 01:52もし開発がMac/WindowsのGUIベースのアプリケーション依存であればWSLは使えないかもですが
CUI(コマンドライン)ベースの開発であればとりあえずWSLが利用可能です。
認識の通り、PC内にUbuntu等のLinuxをインストールしてWindowsと同時に利用可能とするものです。
私は使ったことないですがLinuxのGUIも使えるようなので、GUIベースのアプリケーションが必要でもLinux版があれば使えるかもしれません。
Linux 用 Windows サブシステムで Linux GUI アプリを実行する
GoogleColaboはWebサービスでローカルとのデータのやり取りは無い?はずなので
普通にWindowsのブラウザでGoogleを開けばよいはずで
JupyterLabは利用したことありませんが見たところUbuntu(WSL)にインストールできそうな気はします。
Ubuntu22.04にJpyter Lab環境構築
ただWSLのセットアップやメンテナンスは少しLinuxの知識が必要で
おそらく大学の授業でそちらの設定をして、Ubuntuを導入することで、WindowsでもMacのコマンドを動かした等の記憶はあるのですが、あまりよく分からないまま終わってしまいました。
という感じなら詰まる可能性もあります。そんなに難しいことではないのですがWSLに少し癖もあり。
大学に相談できる相手がいるとよいのですが。
追記
いつもの質問形式のやつかと思い投稿しましたが意見交換という機能が追加されたんですね。
ipynbを利用したことが無く!でターミナル起動というのがイメージ湧かなくてこれ以上アドバイスできなさそうなのと
意見交換の場の規約がわかってないので一旦ここまでとします。
ありがとうごうざいました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#18
総合スコア1089
投稿2023/06/18 11:18
編集2023/06/18 11:30!をつけることで機能するコードが、差異がある(macだとターミナル、windowsだとコマンドプロンプト)というものがあります。
Macを基準にするならWindows側にエイリアスを定義するか、それとも両方の環境にエイリアスを定義して環境に依存しなくするかです。
mac
ipython
1! ls
windows
ipython
1! dir
ls
に統一したければ%alias
を使って環境ごとにシステムコマンドを指定します。
mac
ipython
1%alias ls ls
windows
ipython
1%alias ls dir
両方の環境に対応するコマンドがないときはスクリプトを記述するなどの工夫が必要になります。
(追記) すでにls
という変数が定義されていたらエイリアスは無視されます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#19
総合スコア1089
投稿2023/06/18 11:50
venv
Macでコマンドベースで作業しているのなら、WindowsでPower Shellを起動(コマンドプロンプトでも好きなほうで)、venvで環境を構築するのが良いかもしれません。操作の統一感があるでしょうし、他の人が研究環境をWindowsに移植するにしても手順を記録に残しやすいと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。