4

これは、stackoverflow に関する私の最初の投稿です。何か問題があれば、ぜひ学びたいです。

PythonでCinema 4dのプラグインをプログラミングしています。すべてが Mac で動作しますが、これから説明する内容で Windows で問題が発生します。

レンダーサーバーでレンダリングする場合、プラグインにはサーバーへのパスが必要です。ユーザーにパスを一度入力してもらい、それを .txt ファイルに保存してもらいます。

c4d の場合、プラグインを以下のプラグイン フォルダにドラッグ アンド ドロップして、プラグインをインストールします。

C:/programm files/Maxon/Cinema4D/Plugins/NewPluginGoesHere

すべてをきれいに保つために、プラグイン フォルダーにも pathToServer.txt (パスを含む 1 行のみを格納するテキスト ファイル) が必要です。プラグインを上記のフォルダーにインストール (ドロップ) すると、.txt ファイルが既に存在します -> プラグインによって作成されません。

問題は次のとおりです。

ファイルを開いて書き込みます

pathFile = open(pathToPathFile, "w")
pathFile.write(pathToServerFolder)

Macでは問題なく動作しますが、スローします

IOError: [Errno 13] Permission denied: 'C:\\Program Files\\MAXON\\CINEMA 4D R14\\plugins\\MultiLayerRender\\Renderserverpath.txt'

Windows で。

私はそのようなタスク(ファイル管理など)にPythonを使用することにかなり慣れていません。

次に、次のことを試しました。

pathFile = subprocess.Popen(pathToPathFile, stdin = subprocess.PIPE, stdout = subprocess.PIPE, shell = True)
pathFile.communicate(input = pathToServerFolder)
pathFile.stdin.close()

これは私にエラーを与えませんが、何もしないようです:/

サブプロセスのpythonドキュメントを読みましたが、それは本当に私をまったく助けませんでした。どちらかといえば、混乱させました。

上記のディレクトリのプラグイン フォルダーに直接保存する権限を付与するには、コード エディターを管理者モードで実行する必要があることに気付きました。「program files」フォルダ内のファイルが何らかの形で保護されているようです。また、このプラグインは複数の異なるコンピューター (Mac または Windows) にインストールされるため、たとえばプログラム ファイル フォルダーのアクセス許可を変更することはできません。最終的には、ドラッグ アンド ドロップするだけでインストールできます。

誰もそれを達成する方法を知っていますか?

4

1 に答える 1

2

Windows で Program Files に書き込むには昇格されたアクセス許可が必要ですが、プラグインにはそれらがありません。別のディレクトリを使用することを検討します。

多くのレンダリング ソリューションでは、どこかにディレクトリを指定する必要があるため、大きな問題ではないと思います。たとえば、modo 501 および 601 (およびおそらく 701) には、データ共有用のディレクトリが必要です。V-Ray for Maya では多かれ少なかれシーン ファイルを共有ドライブに分散モードで配置する必要があります。

于 2013-04-13T17:43:09.717 に答える