小编DP_*_*DP_的帖子

如何在Jupyter Notebook中使用来自外部Python文件的代码?

我有一个宠物项目,最初是从Jupyter笔记本开始的。到目前为止,我将所有Python代码都放在了笔记本中。

开始时一切都很好。但是随着时间的流逝,我在笔记本中编写的代码变得越来越复杂。现在几乎无法处理:当我发现错误时,我需要

  1. 导航到带有错误的代码部分(通常在笔记本的开头),
  2. 在那里修复错误,
  3. 转到(通常)笔记本的底部以触发我更改的代码的执行。

我想将代码分为两部分:

  1. 其中一个将存储为Python文件,我将使用编辑器(和/或IDE)进行编辑。
  2. Jupyter笔记本中的代码将调用代码部分1并显示其输出(即,将Jupyter笔记本用作步骤1中Python代码的用户界面)。

假设笔记本在我的本地计算机上运行(Windows 7; Jupyter在Anaconda中运行),并且Python文件也存储在本地。

有什么好的方法可以使用IPython文件中的代码,以便我可以频繁,快速地修改此代码?

“频繁且快速”是指“将更改从Python文件传播到笔记本的步骤尽可能少”。理想的解决方案是我更改其中一个Python文件,运行一个命令,然后在Jupyter笔记本中进行更改。或者,使用旧的类比,我希望它像PHP一样-您经常更改代码并立即查看更改的结果。

更新1:我试图%load TestClass.py在单元格中使用该解决方案。

问题是,如果文件更改,则单元格内容不会更新。

例:

假设我把文字

class TestClass:
    def __init__(self):
        print("TestClass constructor")
Run Code Online (Sandbox Code Playgroud)

进入TestClass.py。然后,我在Jupyter笔记本中使用创建一个单元格%load TestClass.py。当我执行该单元格时,将TestClass.py导入from中的代码,并将该行%load TestClass.py注释掉。

现在我换TestClass.py

class TestClass:
    def __init__(self):
        print("TestClass constructor")
        print("change")
Run Code Online (Sandbox Code Playgroud)

当我执行该单元格时,其内容未更改。

python jupyter jupyter-notebook

4
推荐指数
1
解决办法
1394
查看次数

我可以根据队列 URL 检测 Jenkins 构建是否已完成吗?

我正在尝试触发 Jenkins 构建并等待它完成。

当我通过 REST API 启动 Jenkins 时,我收到了类似http://JENKINS_URL:8080/queue/item/36285/.

当我尝试访问它时,我总是收到 404 错误。我的测试版本相当短,因此它们可能在我退出调试器之前完成。

问题:如果类似的 URLhttp://JENKINS_URL:8080/queue/item/36285/导致 404 响应,是否可以保证相应的 Jenkins 构建完成?也就是说,我可以通过这个URL来查看它是否完成(只要该URL返回的状态码不等于404,则构建正在运行)?

jenkins

4
推荐指数
1
解决办法
2306
查看次数

为什么这个 C# 方法不能生成正确的屏幕截图?

我想保存标题以- ScrivenerPNG 文件结尾的窗口快照。为此,我编写了以下方法(基于答案):

        [DllImport("user32.dll")]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool GetWindowRect(HandleRef hWnd, out RECT lpRect);

        [StructLayout(LayoutKind.Sequential)]
        public struct RECT
        {
            public int Left;        // x position of upper-left corner
            public int Top;         // y position of upper-left corner
            public int Right;       // x position of lower-right corner
            public int Bottom;      // y position of lower-right corner
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Process[] processes  = Process.GetProcesses();
            Process scrivenerProcess = null;
            foreach (Process curProcess …
Run Code Online (Sandbox Code Playgroud)

c# screenshot screen-capture winforms

4
推荐指数
1
解决办法
86
查看次数

Delphi 使用哪些 Windows 消息来通知组合框中的更改?

我有一个 Delphi 应用程序 A,我需要从 .NET 应用程序 B 控制它。

除此之外,我需要自动化这个过程:

  1. 用户从组合框中选择项目 X。
  2. 应用程序 A 注意到该变化并通过显示特定面板做出反应。

如果我手动执行此操作,效果很好。

但是,当应用程序 B 选择组合框值时,不会显示任何面板。

这就是问题。

其潜在原因:

  1. 当我选择组合框项目时,会触发特定的窗口消息。某些 Delphi 例程对此消息做出反应。
  2. 当我以编程方式选择组合框项时,我发送的唯一消息是CB_SETCURSELDelphi 应用程序似乎忽略它。

因此我认为我可以解决这个问题,如果我

  1. 了解哪些 Windows 消息用作有关组合框值更改的通知的基础(例如OnChange)和
  2. 从 C# 应用程序发送该 Windows 消息。

因此我的问题是:什么是Windows消息,它们的发生OnChange(以及通知Delphi应用程序更改组合框选择的其他事件)被触发?

更新1:开始实施David Heffernan提出的解决方案

private const int CB_SETCURSEL = 0x14E;
private const int WM_COMMAND = 0x0111;
private const int CBN_SELCHANGE = 0x001;
private const int CN_COMMAND = 0xBD11;

private int MakeWParam(int l, int h)
{
    return (l & 0xFFFF) | …
Run Code Online (Sandbox Code Playgroud)

delphi winapi delphi-2009

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

如何使用Delphi中的WinAPI按名称查找组合框项的索引?

我有一个Delphi应用程序A,它需要在另一个Delphi应用程序B的组合框中选择某个项目.

A知道要选择的组合框项的文本.

为了选择组合框项,应用程序A需要知道组合框中项的索引.

当我只知道它的文本时,我怎么能弄清楚组合框项目的索引?

delphi winapi combobox delphi-2009

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

方便查看Tomcat 7日志文件的工具

是否有任何软件(Psi-ProbeJava Melody除外),它允许查看Tomcat文件并且比它更舒服cat /var/log/tomcat7/catalina.out | tail | less

理想情况下,它会像这样工作:我启动应用程序(或打开一个网页)并立即查看Tomcat的当前日志文件(无需打开SSH客户端,输入凭据等).

logging monitoring tomcat tomcat7

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

如何访问片段中的UI元素?

我有一个带有id的控件(TextView)的片段,R.id.currentCycleIndicator并希望以编程方式从片段中设置其值.

  • getActivity().findViewById(R.id.currentCycleIndicator)
  • getView().findViewById(R.id.currentCycleIndicator)

返回null.

如何在片段代码中引用TextView?

android android-fragments

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

如何用单例测试代码?

我有一个旧的应用程序,其代码片段如下:

public class MyClass
{
    public void executeSomeSqlStatement()
    {
        final Connection dbConn = ConnectionPool.getInstance().getConnection();

        final PreparedStatement statement = dbConn.prepareStatement(); // NullPointerException, if ConnectionPool.getInstance().getConnection() returns null
    }
}
Run Code Online (Sandbox Code Playgroud)

我想编写一个单元测试,当ConnectionPool.getInstance().getConnection()返回null 时,它会验证MyClass.executeSomeSqlStatement不会抛出NullPointerException.

我怎么能这样做(模拟ConnectionPool.getInstance().getConnection())而不改变类的设计(不删除单例)?

java unit-testing mocking

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

Log out doesn't work in Spring Boot application (POST method not supported)

I have a Spring Boot application with the following configuration

@Configuration
@EnableWebSecurity
open class WebSecurityConfig : WebSecurityConfigurerAdapter() {
    override fun configure(http:HttpSecurity) {
        http
            .authorizeRequests()
                .antMatchers("/css/**", "/js/**", "/fonts/**")
                .permitAll().and()
            .formLogin()
                .loginPage("/login")
                .permitAll()
                .and()
            .authorizeRequests()
                .anyRequest().authenticated()
                .and()
            .logout() 
                .logoutSuccessUrl("/login") 
                .permitAll()
            .and().csrf().disable()
    }
    @Autowired
    fun configureGlobal(auth:AuthenticationManagerBuilder) {
        auth
            .inMemoryAuthentication()
                .withUser("usr@provider.com").password("test").roles("USER")
    }
}
Run Code Online (Sandbox Code Playgroud)

When I try to log out, I get the error

There was an unexpected error (type=Method Not Allowed, status=405). Request method 'POST' not supported

How can I fix it?

How to …

java authentication spring kotlin spring-boot

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

如何从WebAssembly文本格式访问DOM?

文章演示了如何从一个C程序访问DOM中WebAssembly:

#ifdef __EMSCRIPTEN__
#include <emscripten.h>
#endif

unsigned int EMSCRIPTEN_KEEPALIVE IncrementClickCountOnValue()
{
    // Static variable that hold how many times this function was clicked
    static int clicks=0;

    // Modify the DOM, through a Javascript call provided by EM_ASM_, getElementById  is the DOM API used
    EM_ASM_( {document.getElementById("run").value='Webassembly click count: '+$0}, ++clicks );
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

如果编译(emcc dom.c -O1 -s MODULARIZE=1 -s WASM=1 -o dom.js)并运行它(emrun --no_browser --port 8080 .),它将按预期工作。

我怎么可以这样做没有C,即什么是相当于EM_ASM_( {document.getElementById("run").value='Webassembly click count: '+$0}, ++clicks ); …

dom webassembly

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