标签: user-environment

R EnvironmentError:在路径上找不到Ghostscript.RWebLogo

我碰到了一个奇怪的问题,我无法以任何方式解决这个问题,我希望有人能够更好地理解这些错误;

我无法使用RWebLogo包 - 甚至运行最简单的示例,因为同样缺少Ghostscript错误.

例如跑步:

library(RWebLogo)
aln <- c('CCAACCCAA', 'CCAACCCTA', 'AAAGCCTGA', 'TGAACCGGA')
weblogo(seqs=aln, file.out='mylogo.pdf')
Run Code Online (Sandbox Code Playgroud)

抛出此错误:

Traceback (most recent call last):
  File "/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RWebLogo/extdata/weblogo-3.3/weblogo", line 71, in <module>
    weblogolib._cli.main()
  File "/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RWebLogo/extdata/weblogo-3.3/weblogolib/_cli.py", line 82, in main
    formatter(data, format, opts.fout)
  File "/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RWebLogo/extdata/weblogo-3.3/weblogolib/__init__.py", line 757, in pdf_formatter
    gs = GhostscriptAPI()    
  File "/Library/Frameworks/R.framework/Versions/3.1/Resources/library/RWebLogo/extdata/weblogo-3.3/weblogolib/__init__.py", line 196, in __init__
    raise EnvironmentError("Could not find Ghostscript on path."
EnvironmentError: Could not find Ghostscript on path. There should be either a gs executable or a gswin32c.exe on your system's path
Run Code Online (Sandbox Code Playgroud)

我在终端中安装了ghostscript …

bash r user-environment ghostscript sequence-alignment

5
推荐指数
1
解决办法
1115
查看次数

在python中使用CreateProcessAsUser不会将用户的环境传递给创建的进程

首先感谢您花时间阅读这个问题。

我使用以下代码从交互式用户下的 Windows 服务成功启动了应用程序可执行文件(让我们称之为MyApp.exe ):

#MyWindowsService.py

console_session_id = win32ts.WTSGetActiveConsoleSessionId()
console_user_token = win32ts.WTSQueryUserToken(console_session_id)

my_app_path= os.path.normpath(r"/Path\to\MyApp.exe")
startup = win32process.STARTUPINFO()
priority = win32con.NORMAL_PRIORITY_CLASS
handle, thread_id ,pid, tid = win32process.CreateProcessAsUser(console_user_token, my_app_path, None, None, None, True, priority, None, None, startup)
Run Code Online (Sandbox Code Playgroud)

从 MyApp 内部,我需要获取属于交互式用户的环境路径。例如,我使用以下代码来获取用户的%appdata%的路径:

#MyApp.py

user_app_data_path = os.getenv('APPDATA')
Run Code Online (Sandbox Code Playgroud)

它应该返回:

C:\Users\交互式用户名\AppData\Roaming

然而返回值是:

C:\Windows\System32\config\systemprofile\AppData\Roaming

这意味着虽然MyApp.exe是在交互式用户名下启动的,但它获取的是Windows服务运行所在的SYSTEM用户的环境。

我的问题是如何获取属于用户而不是系统的环境路径。

多谢,

PS 我正在使用 py2exe 将 MyApp 和 Windows 服务转换为可执行文件。

python windows-services user-environment

3
推荐指数
1
解决办法
1383
查看次数