小编Boo*_*boo的帖子

ggplot2 无法加载,出现“rlang”包错误

这是错误消息:

错误:loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) 中“ggplot2”的包或命名空间加载失败:命名空间“rlang”0.3.4 已经加载,但是>= 0.4.0 是必需的

除了警告消息:

包 'ggplot2' 是在 R 版本 3.6.1 下构建的

请帮忙。非常感谢。

r ggplot2 rlang

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

在调用CGI脚本时,未知用户代理在几秒钟后在Chrome和Firefox中生成重复的GET请求

当我使用Chrome或Firefox调用CGI脚本(GET请求)时,我注意到在Apache访问日志中,在几秒钟之后,生成了HEAD请求和具有相同URI的GET请求.为了确保它不是我的Apache设置的特性,我写了一个简单的Perl脚本并将其安装在我的ISP网站上.每次调用时间,URI,用户代理,远程地址和端口时,此脚本只会自己记录到磁盘文件:

#!/usr/bin/perl -wT
use strict;
use CGI;

my $cgi = new CGI;
print $cgi->header(-type=>'text/plain', -expires=>'-1d');
print "hello";

open (LOG, ">>printenv2.txt");
my ($sec, $min, $hr, $day, $mon, $year) = localtime;
my $timestamp = sprintf("%02d/%02d/%04d %02d:%02d:%02d", $mon + 1, $day, 1900 + $year, $hr, $min, $sec);
print LOG $timestamp, "\n";
my @keys = qw(REQUEST_METHOD REQUEST_URI HTTP_USER_AGENT REMOTE_ADDR REMOTE_PORT);
foreach (@keys) {
    print LOG "$_ = $ENV{$_}\n";
}
print LOG "\n";
close LOG;
Run Code Online (Sandbox Code Playgroud)

我用http://localhost/friends/forms/cgi/printenv2.cgi调用了一次脚本?arg = 1

该脚本运行了三次,但最后两次运行在我的初始调用后超过14秒.这是日志的输出:

09/11/2015 19:25:26
REQUEST_METHOD …
Run Code Online (Sandbox Code Playgroud)

firefox cgi google-chrome

6
推荐指数
1
解决办法
1228
查看次数

为什么实习全局字符串值会导致每个多处理进程使用更少的内存?

我有一个 Python 3.6 数据处理任务,它涉及预加载一个大字典,用于按 ID 查找日期,以便在多处理模块管理的子进程池的后续步骤中使用。这个过程占用了盒子上的大部分内存,所以我应用的一项优化是“实习”存储在字典中的字符串日期。正如我预期的那样,这将 dict 的内存占用减少了几个 GB,但它也产生了另一个意想不到的效果。

在应用实习之前,子进程在执行时会逐渐消耗越来越多的内存,我认为这是由于他们不得不将 dict 从全局内存逐渐复制到子进程的单独分配内存(这是运行Linux 等受益于 fork() 的写时复制行为。即使我没有更新子进程中的字典,看起来只读访问仍然可以通过引用计数触发写时复制

我只希望实习能减少 dict 的内存占用,但实际上它也阻止了内存使用量在子进程生命周期中逐渐增加

这是我能够构建的一个复制行为的最小示例,尽管它需要一个大文件来加载并填充 dict 以及在值中进行足够数量的重复以确保实习提供好处。

import multiprocessing
import sys

# initialise a large dict that will be visible to all processes
# that contains a lot of repeated values
global_map = dict()
with open(sys.argv[1], 'r', encoding='utf-8') as file:
  if len(sys.argv) > 2:
    print('interning is on')
  else:
    print('interning is off')
  for i, line in enumerate(file):
    if i > 30000000:
      break
    parts …
Run Code Online (Sandbox Code Playgroud)

python linux multiprocessing

6
推荐指数
1
解决办法
233
查看次数

当作为参数传递给 multiprocessing.Process 时,multiprocessing.Queue 实例如何序列化?

相关问题出现在Why I can't use multiprocessing.Queue with ProcessPoolExecutor? 。我提供了部分答案以及解决方法,但承认这个问题引发了另一个问题,即为什么可以multiprocessing.Queue将实例作为参数传递给辅助函数。multiprocessing.Process

例如,以下代码在使用spawnfork方法创建新进程的平台下会失败:

from multiprocessing import Pool, Queue

def worker(q):
    print(q.get())

with Pool(1) as pool:
    q = Queue()
    q.put(7)
    pool.apply(worker, args=(q,))
Run Code Online (Sandbox Code Playgroud)

上述提出:

RuntimeError: Queue objects should only be shared between processes through inheritance

但下面的程序运行没有问题:

from multiprocessing import Process, Queue

def worker(q):
    print(q.get())

q = Queue()
q.put(7)
p = Process(target=worker, args=(q,))
p.start()
p.join()
Run Code Online (Sandbox Code Playgroud)

看来,多处理池工作函数的参数最终会放在池的输入队列上,该队列是作为 a 实现的,multiprocessing.SimpleQueue并且您不能将实例放入使用 a进行序列化的实例中。multiprocessing.Queuemultiprocessing.SimpleQueueForkingPickler

那么,multiprocessing.Queue当作为参数传递给 a …

python queue multiprocessing

6
推荐指数
1
解决办法
1387
查看次数

使用带有 Gmail 帐户的 PHPMailer 发送邮件

我正在尝试使用 PHPMailer 库从我的网站发送电子邮件。我这样做的目的是:

  1. 我从这个链接下载了 PHPMailer 5.2-stable 。

  2. 我在我的主机上上传了以下文件:class.phpmailer.phpclass.smtp.phpPHPMailerAutoload.php

  3. 然后我创建了一个文件名 contact.php 并在其中编写了以下代码:

    require 'phpmailer/PHPMailerAutoload.php';
    $mail = new PHPMailer();
    $mail->SMTPDebug = 1;  
    
    $mail->SMTPAuth = true; 
    $mail->IsSMTP();
    $mail->Host = "smtp.gmail.com";
    $mail->Username = "*****************"; //My Email Address
    $mail->Password = "*****************"; //My Email's Address
    $mail->SMTPSecure = "tls";   
    $mail->Port = 578; 
    
    $mail->AddAddress('*****************');
    $mail->From = "*****************";
    $mail->FromName = "Website Contact Form - " . "Website Name";
    $mail->Subject = "New Message from Contact Form";
    
    $mail->Body    = 'This is the HTML message …
    Run Code Online (Sandbox Code Playgroud)

php email phpmailer contact-form

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

在 phpMyAdmin 4.5.0.2 中无法识别 MySql“NOT IN”子句

一个简单的 SQL 语句,例如

SELECT 1 from MyTable WHERE 1 NOT IN (2);
Run Code Online (Sandbox Code Playgroud)

产生:

4 Errors were found during analysis.

    1. Unrecognized keyword (near "NOT IN" at position 30)
    2. Unexpected token. (near "(" at position 37)
    3. Unexpected token. (near "2" at position 38)
    4. Unexpected token. (near ")" at position 39)
Run Code Online (Sandbox Code Playgroud)

我刚刚在 phpMYAdmin 网站上注意到“当前版本与 PHP 5.5 到 7.0 和 MySQL 5.5 兼容”。我使用的 MySql 版本是 5.6.26。这可能是问题吗?上述SQL某些des通过mysql.exe(MySql Console)直接输入时不会出现问题。

phpmyadmin

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

在 getInitialProps 中找不到 isServer

我正在getInitialProps使用next.js

这是我的代码:

  static getInitialProps( ctx ) {

    console.log(ctx.isServer);
    return{}

}
Run Code Online (Sandbox Code Playgroud)

为什么我找不到isServer

reactjs next.js

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