Category Archives: How to Fix

Springboot integration redis reports non null key required (solved)

SpringBoot integrated Redis reports non null key required(resolved)

notice if the key value given or passed is empty, if it is empty it will report this error

1. Create the SpringBoot project, create the necessary package
; 2. Create application.yml for relevant configuration

server:
  port: 8080
  servlet:
    context-path: /redis
    #mybatis配置
mybatis-plus:
  configuration:
    map-underscore-to-camel-case: true
  type-aliases-package: com.today.springboot.dao
  mapper-locations: classpath*:mapper/*.xml
spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/mysql_begin?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&allowPublicKeyRetrieval=true&useSSL=false
    type: com.alibaba.druid.pool.DruidDataSource
  redis:
    host: 127.0.0.1
    port: 6379

3. Write redisconfig. Java configuration class

@Configuration
@EnableCaching
public class RedisConfig {

    //编写我们自己的redisTemplate
    //这是写好的一个固定模板,在企业中可以直接使用
    @Bean
    @SuppressWarnings("all")
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory){
        //我们为了自己开发方便,一般直接使用<String, Object>
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(factory);

        //json序列化配置
        Jackson2JsonRedisSerializer<Object> j2rs = new Jackson2JsonRedisSerializer<Object>(Object.class);
        ObjectMapper om=new ObjectMapper();
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        j2rs.setObjectMapper(om);
        //String的序列化
        StringRedisSerializer srs = new StringRedisSerializer();

        //key采用String序列化方式
        template.setKeySerializer(srs);
        //hash的key采用String的序列化方式
        template.setHashKeySerializer(srs);
        //value序列化方式采用jackson
        template.setValueSerializer(j2rs);
        //hash的value序列化方式采用jackson
        template.setHashValueSerializer(j2rs);
        template.afterPropertiesSet();

        return template;
    }

    /**
     * 对hash类型的数据操作
     *
     * @param redisTemplate
     * @return
     */
    @Bean
    public HashOperations<String, String, Object> hashOperations(RedisTemplate<String, Object> redisTemplate) {
        return redisTemplate.opsForHash();
    }

    /**
     * 对redis字符串类型数据操作
     *
     * @param redisTemplate
     * @return
     */
    @Bean
    public ValueOperations<String, Object> valueOperations(RedisTemplate<String, Object> redisTemplate) {
        return redisTemplate.opsForValue();
    }

    /**
     * 对链表类型的数据操作
     *
     * @param redisTemplate
     * @return
     */
    @Bean
    public ListOperations<String, Object> listOperations(RedisTemplate<String, Object> redisTemplate) {
        return redisTemplate.opsForList();
    }

    /**
     * 对无序集合类型的数据操作
     *
     * @param redisTemplate
     * @return
     */
    @Bean
    public SetOperations<String, Object> setOperations(RedisTemplate<String, Object> redisTemplate) {
        return redisTemplate.opsForSet();
    }

    /**
     * 对有序集合类型的数据操作
     *
     * @param redisTemplate
     * @return
     */
    @Bean
    public ZSetOperations<String, Object> zSetOperations(RedisTemplate<String, Object> redisTemplate) {
        return redisTemplate.opsForZSet();
    }
}

4, write redisutil.java helper class. To encapsulate Redis operations, of course, write the appropriate helper class

for your own coding

@Component
public class RedisUtil {


    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

    //=================common==================

    /**
     * 指定缓存失败时间
     *
     * @param key  键
     * @param time 时间(秒)
     * @return
     */
    public boolean expire(String key, long time) {
        try {
            if (time > 0) {
                redisTemplate.expire(key, time, TimeUnit.SECONDS);
            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 根据key 获取过期时间
     *
     * @param key 键 不能为null
     * @return 时间(秒) 返回0代表为永久有效
     */
    public long getExpire(String key) {
        return redisTemplate.getExpire(key, TimeUnit.SECONDS);
    }


    /**
     * 判断key是否存在
     *
     * @param key 键
     * @return true存在  false不存在
     */
    public boolean hasKey(String key) {
        try {
            return redisTemplate.hasKey(key);
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }


    /**
     * 删除缓存
     *
     * @param key 可以传一个或多个值
     */
    @SuppressWarnings(value = "unchecked")
    public void del(String... key) {
        if (key != null && key.length > 0) {
            if (key.length == 1) {
                redisTemplate.delete(key[0]);
            } else {
                redisTemplate.delete(CollectionUtils.arrayToList(key));
            }
        }
    }

    // ================String==================

    /**
     * 普通缓存获取
     *
     * @param key 键
     * @return 值
     */
    public Object get(String key) {
        return key == null ? null : redisTemplate.opsForValue().get(key);
    }

    /**
     * 普通缓存放入
     *
     * @param key   键
     * @param value 值
     * @return true成功 false失败
     */
    public boolean set(String key, Object value) {
        try {
            redisTemplate.opsForValue().set(key, value);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 普通缓存放入并设置时间
     *
     * @param key   键
     * @param value 值
     * @param time  时间(秒) time要大于0 如果time小于等于0 将设置无限制
     * @return true成功 false失败
     */
    public boolean set(String key, String value, long time) {
        try {
            if (time > 0) {
                redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
            } else {
                set(key, value);
            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 递增
     *
     * @param key   键
     * @param delta 要减少几个
     * @return
     */
    public long incr(String key, long delta) {
        if (delta < 0) {
            throw new RuntimeException("递减因子必须大于0");
        }
        return redisTemplate.opsForValue().increment(key, delta);
    }

    /**
     * 递减
     *
     * @param key   键
     * @param delta 要减少几个
     * @return
     */
    public long decr(String key, long delta) {
        if (delta < 0) {
            throw new RuntimeException("递减因子必须大于0");
        }
        return redisTemplate.opsForValue().increment(key, -delta);
    }

    // =================Map===================

    /**
     * HashGet
     *
     * @param key  键 不能为null
     * @param item 项 不能为null
     * @return
     */
    public Object hget(String key, String item) {
        return redisTemplate.opsForHash().get(key, item);
    }

    /**
     * 获取hashKey对应的所有键值
     *
     * @param key 键
     * @return map 对应多个键值
     */
    public Map<Object, Object> hmget(String key) {
        return redisTemplate.opsForHash().entries(key);
    }

    /**
     * HashSet
     *
     * @param key 键
     * @return map 对应多个键值
     */
    public boolean hmset(String key, Map<String, Object> map) {
        try {
            redisTemplate.opsForHash().putAll(key, map);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * HashSet并设置时间
     *
     * @param key  键
     * @param map  对应多个键值
     * @param time 时间(秒)
     * @return true成功 false失败
     */
    public boolean hmset(String key, Map<String, Object> map, long time) {
        try {
            redisTemplate.opsForHash().putAll(key, map);
            if (time > 0) {
                expire(key, time);
            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 向一张hash表中放入数据,如果不存在将创建
     *
     * @param key   键
     * @param item  项
     * @param value 值
     * @return true成功 false失败
     */
    public boolean hset(String key, String item, Object value) {
        try {
            redisTemplate.opsForHash().put(key, item, value);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 向一张hash表中放入数据,如果不存在将创建
     *
     * @param key   键
     * @param item  项
     * @param value 值
     * @param time  时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间
     * @return true成功 false失败
     */
    public boolean hset(String key, String item, Object value, long time) {
        try {
            redisTemplate.opsForHash().put(key, item, value);
            if (time > 0) {
                expire(key, time);
            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 删除hash表中的值
     *
     * @param key  键 不能为null
     * @param item 项 可以有多个 不能为null
     */
    public void hdel(String key, Object... item) {
        redisTemplate.opsForHash().delete(key, item);
    }

    /**
     * 判断hash表中是否有该项的值
     *
     * @param key  键 不能为null
     * @param item 项 不能为null
     * @return true存在 false不存在
     */
    public boolean hHasKey(String key, String item) {
        return redisTemplate.opsForHash().hasKey(key, item);
    }

    /**
     * hash递增 如果不存在,就会创建一个 并把新增后的值返回
     *
     * @param key  键
     * @param item 项
     * @param by   要增加几(大于0)
     */
    public double hincr(String key, String item, double by) {
        return redisTemplate.opsForHash().increment(key, item, by);
    }

    /**
     * hash递减
     *
     * @param key  键
     * @param item 项
     * @param by   要减少几(小于0)
     */
    public double hdecr(String key, String item, double by) {
        return redisTemplate.opsForHash().increment(key, item, -by);
    }

    //====================set===================

    /**
     * 根据key获取set中的所有值
     *
     * @param key 键
     * @return
     */
    public Set<Object> sGet(String key) {
        try {
            return redisTemplate.opsForSet().members(key);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 根据value从一个set中查询,是否存在
     *
     * @param key   键
     * @param value 值
     * @return true存在 false不存在
     */
    public boolean sHasKey(String key, Object value) {
        try {
            return redisTemplate.opsForSet().isMember(key, value);
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 将数据放入set缓存
     *
     * @param key    键
     * @param values 值 可以是多个
     * @return 成功个数
     */
    public long sSet(String key, Object... values) {
        try {
            return redisTemplate.opsForSet().add(key, values);
        } catch (Exception e) {
            e.printStackTrace();
            return 0;
        }
    }

    /**
     * 将set数据放入缓存
     *
     * @param key    键
     * @param time   时间(秒)
     * @param values 值 可以是多个
     * @return 成功个数
     */
    public long sSetAndTime(String key, long time, Object... values) {
        try {
            Long count = redisTemplate.opsForSet().add(key, values);
            if (time > 0) {
                expire(key, time);
            }
            return count;
        } catch (Exception e) {
            e.printStackTrace();
            return 0;
        }
    }

    /**
     * 获取set缓存的长度
     *
     * @param key 键
     */
    public long sGetSetSize(String key) {
        try {
            return redisTemplate.opsForSet().size(key);
        } catch (Exception e) {
            e.printStackTrace();
            return 0;
        }
    }

    /**
     * 移除值为value的
     *
     * @param key    键
     * @param values 值 可以是多个
     * @return 移除的个数
     */
    public long setRemove(String key, Object... values) {
        try {
            return redisTemplate.opsForSet().remove(key, values);
        } catch (Exception e) {
            e.printStackTrace();
            return 0;
        }
    }

    //=================List===================

    /**
     * 获取list缓存的内容
     *
     * @param key   键
     * @param start 开始
     * @param end   结束 0 到 -1代表所有值
     */
    public List<Object> lGet(String key, long start, long end) {
        try {
            return redisTemplate.opsForList().range(key, start, end);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 获取list缓存的长度
     *
     * @param key 键
     */
    public long lGetListSize(String key) {
        try {
            return redisTemplate.opsForList().size(key);
        } catch (Exception e) {
            e.printStackTrace();
            return 0;
        }
    }

    /**
     * 通过索引 获取list中的值
     *
     * @param key   键
     * @param index 索引index>=0时, 0 表头,1 第二个元素,以此类推:index<0时,-1表尾,-2倒数第二个元素,以此类推
     */
    public Object lGetIndex(String key, long index) {
        try {
            return redisTemplate.opsForList().index(key, index);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 将list放入缓存
     *
     * @param key   键
     * @param value 值
     */
    public boolean lSet(String key, Object value) {
        try {
            redisTemplate.opsForList().rightPush(key, value);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 将list放入缓存
     *
     * @param key   键
     * @param value 值
     * @param time  时间(秒)
     */
    public boolean lSet(String key, Object value, long time) {
        try {
            redisTemplate.opsForList().rightPush(key, value);
            if (time > 0) {
                expire(key, time);
            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 将list放入缓存
     *
     * @param key   键
     * @param value 值
     * @return
     */
    public boolean lSet(String key, List<Object> value) {
        try {
            redisTemplate.opsForList().rightPushAll(key, value);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 将list放入缓存
     *
     * @param key   键
     * @param value 值
     * @param time  时间(秒)
     * @return
     */
    public boolean lSet(String key, List<Object> value, long time) {
        try {
            redisTemplate.opsForList().rightPushAll(key, value);
            if (time > 0) {
                expire(key, time);
            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 根据索引修改list中的某条数据
     *
     * @param key   键
     * @param index 索引
     * @param value 值
     * @return
     */
    public boolean lUpdateIndex(String key, long index, Object value) {
        redisTemplate.opsForList().set(key, index, value);
        try {
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 移除N个为value值
     *
     * @param key   值
     * @param count 移除多少个
     * @param value 值
     * @return 移除的个数
     */
    public long lRemove(String key, long count, Object value) {
        try {
            return redisTemplate.opsForList().remove(key, count, value);
        } catch (Exception e) {
            e.printStackTrace();
            return 0;
        }
    }
}

5, willful your creative mind to write the best website and system
here to write some test classes to help understand

@SpringBootTest
class RedisSpringbootApplicationTests {

    @Autowired
    @Qualifier("redisTemplate")
    private RedisTemplate redisTemplate;

    @Autowired
    private RedisUtil redisUtil;

    @Test
    public void test1(){
        redisUtil.set("name","today");
        System.out.println(redisUtil.get("name"));
    }

    @Test
    void contextLoads() {
        //redisTemplate
        //opsForValue操作字符串 类似String
        //opsForList操作List 类似List


        //获取redis的连接对象
		//RedisConnection connection = redisTemplate.getConnectionFactory().getConnection();
		//connection.flushDb();
		//connection.flushAll();

        redisTemplate.opsForValue().set("mykey","今天");
        System.out.println(redisTemplate.opsForValue().get("mykey"));
    }

    @Test
    public void test() throws JsonProcessingException {
        //真实的开发一般都使用json来传递对象
        User user = new User("today", 3);
		// String jsonUser = new ObjectMapper().writeValueAsString(user);
        redisTemplate.opsForValue().set("user",user);
        System.out.println(redisTemplate.opsForValue().get("user"));
    }

}

published in CSDN for the first time, please forgive me if there is any mistake

Eo ferror: compressed file ended before the end of stream marker was reached

One of the reasons for the

error: at the time the data was first downloaded, the downloaded resource was incomplete due to network reasons or other reasons.
solution:

  • can delete the downloaded resources, download
  • to find the relevant resources, put the complete resources into the Dataset file (if you don’t know where the Dataset folder is, then the error information is prompted, you can go to the corresponding path to find.) Usually in your system’s home directory.

?

The import Maven project appears http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException Solutions

error occurs when importing maven project, conducting maven clean, and maven install:

[ERROR] Failed to execute goal. Org. Apache maven. Plugins: maven — the compiler plugin: 3.1: the compile (default – the compile) on project mvc2: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

is running on a JRE rather than a JDK version.

is running on a JRE rather than a JDK version

  1. window – & gt; The preferences – & gt; Java – & gt; Installed JREs
  2. find JDK installation path

  3. select the JDK – & gt; apply
  4. maven clean again, maven install, if the problem remains, For the operation:



  5. open pom. The XML file, The following configuration under the plugins will source target to correspond to the JDK version (I was) 1.8:
<plugin>
 <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-surefire-plugin</artifactId>
 <version>2.4.2</version>
 <configuration> 
 <source>1.8</source>
 <target>1.8</target>
 </configuration>
 </plugin>

set the JDK version 1.8
maven clean again, maven install, no error, can be loaded, But the project may still be small Red Cross on the top left corner, specific error is as follows:
Dynamic Web Module 3.0 requires Java 1.6 or newer.


specific solution is as follows:
find apache – maven installation path;

in Apache-maven-3.5.3 /conf/settings.xml file with the following configuration (depending on JDK version, mine is 1.8) :

<profiles>     
       <profile>       
            <id>jdk-1.8</id>       
            <activation>       
                <activeByDefault>true</activeByDefault>       
                <jdk>1.8</jdk>       
            </activation>       
            <properties>       
                <maven.compiler.source>1.8</maven.compiler.source>       
                <maven.compiler.target>1.8</maven.compiler.target>       
                <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>       
            </properties>       
    </profile>      
</profiles>   

re Maven > Update project can solve this problem.

this article reprinted in: https://blog.csdn.net/ZkD953/article/details/79935520

Solution: Solving Environment: failed with initial frozen solve. Retrying with flexible solve

Anaconda

problems with some environment installation using Anaconda Prompt

if Solving environment: failed with initial frozen solve. Retrying with flexible solve., the solution is to update the configuration package in conda and conda.

1, upgrade conda

After

enters Prompt, enter conda update-n base conda, confirm the update and upgrade, and wait, which may take a long time.

2, upgrade package

in conda

enter: conda update --all, just wait.

3, install and deploy your own environment

may not be the general method, but my Anaconda did not download the latest version, the installation environment has a problem, through this method can solve some friends’ problems.
if it cannot be solved, please find another way.

CentOS solves the problem of modulenotfounderror when salt calls python3 script remotely, and solves the problem that PIP3 module cannot be shared by different users

to describe the scenario, a function on the company’s Jboss server needs to call a python script on a centos7.3 machine with salt mode. Python version is 3.7, and the script will call back an HTTP interface to feedback the execution result. In the test environment, I had Linux machine root privileges, installed Python and dependent modules, and tested that the local execution of the PY script was normal and the JBoss Salt calls were normal. After publishing production, it was found that there were no callbacks after the call was issued, and the problem was located.

production environment configuration, the python script has been manually executed, confirm that the script can execute properly. First confirm that the command was actually sent to the Linux server. Listen to the /var/log/messages log and see the failed salt call:

there is an error reason: salt-minion: ModuleNotFoundError: No module named ‘openpyxl’, which is very strange. It is executed directly on the machine, and all the dependencies are there. Why does salt call fail?Therefore, I started to search various baidu sites, and found that there were a lot of materials in this field but not many directly related ones. Either it was a method to solve the installation of Python modules, or the salt-related package missing problem occurred when salt stack called Python, which could not solve my problem.

after communication with colleagues, colleagues suspected that it was caused by different paths of PIP installation modules for different users on the Linux machine. I had no root rights in the production environment, which was the most significant difference from the test environment. Based on this idea, I first inquired the path of the module installed in pip3:

modules were stored in the private path of the current user. Meanwhile, when I wanted sudo to execute the pip3 installation, I found that the system prompt command did not exist and the same error message appeared when I executed the python script as in the messages log:

$ sudo -H python3 static_analyzer.py

File "static_analyzer.py", line 7, i <module>
import openpyxl
ModuleNotFoundError: no module named 'openpyxl'


$ sudo -H pip3 install openpyxl -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com --user

sudo:pip3: command not found

is a good idea, so I looked for ways to share the PIP installation module by user, or at least make it Shared by root. According to the command that this does not exist, one of the blog posts suggests a simple solution, which is to hang the soft connection directly so that root users can find python3 and pip3:

#如下软连接是为了使命令在root用户下 也能正常使用
sudo ln -snf /usr/local/python3/bin/python3  /usr/bin/python3

sudo ln -snf /usr/local/python3/bin/pip3  /usr/bin/pip3

Sure enough, after a soft connection, sudo mode can use python3 and pip3 normally:

sudo -H pip3 install openpyxl -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com --user

With this in mind, let’s run the python script in sudo mode to verify that the current environment root user can execute properly:

sudo -H python3 python_script.py

is completely normal. Without the above soft connection, a ModuleNotFoundError in the Messages log would have appeared in the same command, and so far we have solved the problem that the root user of the PIP3 installed module cannot find.

at the end of the last, through the jboss production environment service page to submit the request, the whole process smoothly completed, perfect!

reference:

view the path to installing a python module using PIP install under Linux

solve pip3 command to install the installation package in the home. Local/lib/python3.5/dist – the problem of packages directory

python3: command not found

sudo used with python

Pytorch RuntimeError: Error(s) in loading state_ dict for Dat aParallel:.. function submit.py Solutions for reporting errors

after the Image Retrieval training run today, some errors appeared when running subs.py like this:

RuntimeError: the Error (s) in loading state_dict for DataParallel: </ strong>
Missing key (s) in state_dict: “Module. Backbone. 0. Weight”, “module. Backbone. 1. The weight”, “module. Backbone. 1. The bias”, “module. Backbone. 1. Running_mean”, “module. Backbone. 1. Running_var”, “module. Backbone. 4.0. Conv1. Weight”. “Module. Backbone. 4.0. Bn1. Weight”, “module. Backbone. 4.0. Bn1. Bias”, “module. Backbone. 4.0. Bn1. Running_mean”, “module. Backbone. 4.0. Bn1. Running_var”, “module. Backbone. 4.0. Conv2. Weight”. “Module. Backbone. 4.0. Bn2. Weight”, “module. Backbone. 4.0. Bn2. Bias”, “module. Backbone. 4.0. Bn2. Running_mean”, “module. Backbone. 4.0. Bn2. Running_var”, “module. Backbone. 4.0. Conv3. Weight”. “Module. Backbone. 4.0. Bn3. Weight”, “module. Backbone. 4.0. Bn3. Bias”, “module. Backbone. 4.0. Bn3. Running_mean”, “module. Backbone. 4.0. Bn3. Running_var”, “module. Backbone. 4.0. Downsample. 0. Weight”. “Module. Backbone. 4.0. The downsample. 1. The weight”, “module. Backbone. 4.0. The downsample. 1. The bias”, “module. Backbone. 4.0. The downsample. 1. Running_mean”, “module. Backbone. 4.0. The downsample. 1. Running_var”, “Module. Backbone. 4.1. Conv1. Weight”, “module. Backbone. 4.1. Bn1. Weight”, “layer4.2. Bn3. Running_var”, “layer4.2. Bn3. Weight”, “layer4.2. Bn3. Bias”, “fc. Weight”, “fc. Bias,”… And so on.

is incorrectly located to line 95 and traced back to a path not generated by the training. PTH file.

solution:

find their own training after the file path is ok.

</ p>

How to Fix ”is not in the sudoers file“ in Linux

reason
sometimes when we use the sudo command to switch users may encounter the following error:

XXX is not in the sudoers file. This incident will be reported

XXX is your current user name, is because the user does not have to join sudo configuration file, The solution is to open the configuration file and add user permissions.

solution </ strong>
step1: using su in as the root user, and enter the following command to enter sudo configuration file

step2: the location of the bottom was found in the configuration file, and add user permissions, save the exit.


tep3: use sudo command again won’t appear error message.

How to Fix Parser rerror: error tokenizing data. C error: expected 2 fields in line 53, saw 3

successfully solved the File “pandas \ _libs \ parsers pyx”, line 2021, in pandas. _libs. Parsers. Raise_parser_error
pandas. Errors. ParserError: Error tokenizing data. C Error: Expected 2 fields in line 53, saw three </ p>

 

directory 

solve the problem

solution

solution


problem solving

File “pandas\_libs\parsers.pyx”, line 2021, in pandas._libs.parsers.raise_parser_error
pandas.errors.ParserError: Error tokenizing data. C error: Expected 2 fields in line 53, saw 3

 

solution

pandas. Errors. ParserError: parsing error: tag data error. C error: expect 2 fields in line 53, see 3

 

solution

because the CSV file is read, the default separation is comma. Analysis shows that the data read contains two fields in a certain cell, that is, two commas may be contained in the value.

,
data= pd.read_csv(data_file, error_bad_lines=False)

 

How to Fix “junit.framework.Comparison Failure Expected: but was”

junit.framework.ComparisonFailure: expected:< . > But was: solution

an error occurred while running the MVN instruction: MVN clean test using the DOS window:

[ERROR] Please refer to D:\ learning gadgets \ first semester of junior \ enterprise application construction and management \ experiments \maven_demo\target\surefire-reports for the individual test results

error display from the surefire – reports file to find errors, check the surefire – reports file:

error body is this:
junit.framework.ComparisonFailure: expected:< Hello [World]guoyilin! > but was:< Hello []guoyilin! >

in the test file called assetEquals method, the method to compare the the statement with a specified in parentheses, if different than the error


you can see, The statement returned in the sayHello method is different from the statement specified in the test module, and that’s where the error is, just change the statement to be the same.