相关疑难解决方法(0)

从Web导入 - 在Mathematica中设置用户代理


当我使用Mathermatica(Import["mysite","Data"])连接到我的站点并查看我的Apache日志时,我看到:
99.XXX.XXX.XXX - - [22/May/2011:19:36:28 +0200] "GET / HTTP/1.1" 200 6268 "-" "Mathematica/8.0.1.0.0 PM/1.3.1"
我可以将它设置为这样(当我连接到真正的浏览器时):
99.XXX.XXX.XXX - - [22/May/2011:19:46:17 +0200] "GET /favicon.ico HTTP/1.1" 404 183 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.68 Safari/534.24"

browser import user-agent wolfram-mathematica

17
推荐指数
5
解决办法
1996
查看次数

了解Kernel-FrontEnd通信 - 为什么我的前端会冻结?

编辑:只是确认你是否可以重现这个是否有用.尝试此操作只需要一台计算机(无需远程连接).

更新似乎其他人无法在Mac或Win7上重现这一点,因此它可能是WinXP特定的或特定于我的机器.在这一点上,我放弃了.


最好有一个关于前端和内核如何通信的教程,这样我们就可以调试远程内核问题.任何这样的一般答案(或其他地方的教程链接)都是最受欢迎的.我已经了解Sascha Kratky 的远程内核策略.

现在的实际问题是: 当我以任何方式连接到远程机器时(例如使用远程内核策略),前端迟早会冻结.我怎么能阻止这个?

以下是如何在一台机器上重现问题(无需远程连接):

  1. 创建新的内核配置(评估菜单 - >内核配置选项...)

    选择高级选项.

    MLOpen的论据:

    -LinkName "8000@YOUR-IP-HERE,8001@YOUR-IP-HERE" -LinkMode Listen 
    -LinkProtocol TCPIP -LinkHost "YOUR-IP-HERE" -LinkOptions MLDontInteract
    
    Run Code Online (Sandbox Code Playgroud)

    (替换YOUR-IP-HERE为计算机的IP地址.在Windows上,您可以通过ipconfig在命令窗口中输入来获取此信息.)

    用于启动内核的Shell命令:保留为空(我们将手动执行)

  2. 打开一个新的笔记本,将笔记本的内核设置为你刚设置的内核,并评估一些东西(1+1).

  3. 现在我们需要在连接超时之前手动启动内核.因此,math在命令行模式下启动一个新的kernel(),并评估以下内容:

    link=LinkConnect["8000,8001",LinkProtocol->"TCPIP"] (* connect to front end link *)
    
    $ParentLink = link; (* set the front end link as parent link *)
    
    Run Code Online (Sandbox Code Playgroud)

    现在连接已建立,一切似乎都正常工作(保存前端粉红色消息窗口中的一条消息)

  4. 评估Manipulate[n, {n, 0, 100, 1}].首先,这似乎也有效.现在玩滑块.前端迟早会冻结,需要被杀死.对我来说,向上和向下拖动滑块约10秒而不释放它总是足够的.

为什么前端会冻结? 如何以一切正常工作的方式在前端和内核之间创建TCPIP模式连接?


一些说明:

  • 我在Windows XP上.
  • 如果我使用,问题永远不会出现LinkProtocol -> "SharedMemory".
  • 使用评估 - …

wolfram-mathematica mathematica-frontend mathlink

7
推荐指数
1
解决办法
1858
查看次数